Strömma i C#: StreamReader och StreamWriter [Exempel]
⚡ Smart sammanfattning
AC# stream är ett lager mellan din applikation och en fil som låter dig läsa eller skriva data i små bitar. Här lär du dig hur StreamReader och Stream fungerarWriter arbete, med exempel och huvudströmstyperna.

Vad är C# Stream?
I C#-filoperationer används normalt strömmar för att läsa och skriva till filer. En ström är ett extra lager som skapas mellan ett program och en fil. Strömmen används för att säkerställa smidig läs- och skrivoperationer till filen.
Strömmar används normalt vid läsning av data från stora filer. Genom att använda strömmar bryts data från stora filer upp i små bitar och skickas till strömmen. Dessa databitar kan sedan läsas från applikationen.
Anledningen till att dela upp det i små bitar är på grund av prestandaeffekten av att läsa en stor fil i en enda gång. Om du skulle läsa data från t.ex. en 100 MB fil i ett tillfälle, kan din applikation bara hänga och bli instabil. Det bästa tillvägagångssättet är då att använda strömmar för att dela upp filen i hanterbara bitar.
Så när en skrivoperation utförs på filen skrivs data som ska skrivas först till strömmen. Från strömmen skrivs sedan data till filen. Detsamma gäller läsoperationen. I läsoperationen överförs data först från filen till strömmen. Data läses sedan från applikationen via streamen. Låt oss titta på ett exempel på hur vi kan läsa och skriva med strömmar.
Typer av strömmar i C#
Alla strömklasser i C# härleds från abstract Stream klass i System.IO namnrymd. Varje typ riktar sig mot en annan datakälla men delar samma läs- och skrivmetoder. De vanligaste strömmarna listas nedan.
- FileStream läser från och skriver till filer på disk, en byte eller ett block i taget.
- Minnesström lagrar data i minnet istället för i en fil, vilket är användbart för tillfälliga buffertar.
- BufferedStream omsluter en annan ström för att minska antalet långsamma disk- eller nätverksoperationer.
- NetworkStream skickar och tar emot data över ett nätverksuttag.
För att arbeta med text tillhandahåller C# StreamReader och StreamWriter hjälpklasser, som omsluter en ström och behandlas i nästa avsnitt.
Stream Reader
Strömläsaren används för att läsa data från en fil med hjälp av strömmar. Data från filen läses först in i strömmen. Därefter läser applikationen data från strömmen.
För vårt exempel kommer vi att anta att vi har en fil i D-enheten som heter Exempel.txt. Filen kommer att vara en enkel textfil och ha 2 rader som visas nedan
- Guru99 – .Net
- Guru99-C#
För vårt exempel kommer vi att skapa en enkel konsolapplikation och arbeta med filströmmar
Låt oss titta på ett exempel på hur vi kan använda strömmar för att läsa data från en fil. Ange koden nedan i filen program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamReader sr = File.OpenText(path)) { String s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } Console.ReadKey(); } } }
Code Förklaring:-
- Först deklarerar vi ett strömläsarobjekt. Strömläsarobjektet används i C# för att definiera en ström från filen till applikationen. Data kommer att skickas från filen till strömmen när data läses från filen. Filen.OpenText används för att öppna filen "Example.txt" i skrivskyddat läge. Hanteraren till filen skickas sedan till strömläsarobjektet.
- Därefter definierar vi en temporär variabel 's' som kommer att användas för att läsa all data från filen.
- Vi använder sedan strömläsarmetoden ReadLine för att läsa varje rad från strömbufferten. När vi utför detta drift, kommer varje rad först att överföras från filen till bufferten. Sedan kommer strängraden att överföras från bufferten till variabeln 's'. Vi skriver sedan innehållet i strängen "s" till konsolen.
När ovanstående kod är inställd och projektet körs med Visual Studio, får du utdata nedan.
Produktion:-
Från utgången kan du se att Stream Reader läser båda raderna från filen. Slutligen skickades raderna i strängen som lästes från strömmen till konsolen.
Stream Writer
Strömskrivaren används för att skriva data till en fil med hjälp av strömmar. Data från applikationen skrivs först in i strömmen. Därefter skriver strömmen data till filen. Låt oss titta på ett exempel på hur vi kan använda strömmar för att skriva data från en fil. Ange koden nedan i filen program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamWriter sr = File.AppendText(path)) { sr.WriteLine("Guru99 - ASP.Net"); sr.Close(); Console.WriteLine(File.ReadAllText(path)); } Console.ReadKey(); } } }
Code Förklaring:-
- Först deklarerar vi ett strömskrivarobjekt. Strömskrivarobjektet används i C# för att definiera en ström. Strömmen används sedan för att skriva data från applikationen till filen. Data kommer att skickas från applikationen till strömmen när data behöver skrivas. Kommandot File.AppendText används för att öppna filen "Example.txt" i ett tilläggsläge. Hanteraren till filen skickas sedan till strömskrivarobjektet.
- Vi använder strömskrivningsmetoden Writeline för att skriva raden "Guru99 – ASP.Net” till strömmen. Från strömmen kommer raden sedan att skrivas till filen.
- Vi stänger sedan strömskrivaren efter att ha skrivit till filen. Det är normalt en god praxis att stänga filhanterare när filen inte längre behövs för skrivsyften.
- Slutligen läser vi innehållet i filen igen och skriver det till konsolloggen. Detta för att kontrollera om raden skrevs till filen.
När ovanstående kod är inställd och projektet körs med Visual Studio, får du utdata nedan.
Produktion:-
Från utdata kan du se att raden "Guru99 – ASP.Net” har lagts till i filen. Alla tre textrader kan ses i konsolen.




