I C # -filoperationer används strömmar normalt för att läsa och skriva till filer. En ström är ett ytterligare lager som skapas mellan en applikation och en fil. Strömmen används för att säkerställa smidig läs- och skrivåtgärd till filen.
Strömmar används normalt när du läser data från stora filer. Genom att använda strömmar delas data från stora filer i små bitar och skickas till strömmen. Dessa bitar av data kan sedan läsas från applikationen.
Anledningen till att bryta ner den i små bitar är på grund av prestandaeffekten av att läsa en stor fil i ett skott. Om du läser informationen från säg, en 100 MB-fil i ett skott, 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 bryta ner 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 data sedan till filen. Detsamma gäller för läsoperationen. I läsoperationen överförs data först från filen till strömmen. Data läses sedan från applikationen via strömmen. Låt oss titta på ett exempel på hur vi kan läsa och skriva med strömmar.
I den här handledningen lär du dig-
- Stream Reader
- Stream Writer
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 i strömmen. Därefter läser applikationen data från strömmen.
För vårt exempel antar vi att vi har en fil i D-enheten som heter Example.txt. Filen blir en enkel textfil och har två rader som visas nedan
- Guru99 - .Net
- Guru99 -C #
För vårt exempel skapar vi en enkel konsolapplikation och arbetar 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 programmet.cs-filen.
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();}}}
Kodförklaring: -
- Först förklarar vi ett strömläsarobjekt. Strömläsarobjektet används i C # för att definiera en ström från filen till applikationen. Uppgifterna kommer att tryckas från filen till strömmen när data läses från filen. File.OpenText används för att öppna filen "Exempel.txt" i skrivskyddat läge. Hanteraren till filen skickas sedan till strömläsarobjektet.
- Därefter definierar vi en tillfällig 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 denna operation kommer varje rad först att överföras från filen till bufferten. Då överförs stränglinjen från bufferten till variabeln s. Vi skriver sedan strängens innehåll 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 utdata 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ömförfattaren 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 programmet.cs-filen.
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();}}}
Kodförklaring: -
- Först förklarar vi ett streamwriter-objekt. Strömförfattarobjektet 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. Uppgifterna kommer att skjutas från applikationen till strömmen när data behöver skrivas. File.AppendText-kommandot används för att öppna filen "Exempel.txt" i ett tilläggsläge. Hanteraren till filen skickas sedan till streamwriter-objektet.
- Vi använder strömskrivmetoden Writeline för att skriva raden "Guru99 - ASP.Net" till strömmen. Från strömmen kommer raden att skrivas till filen.
- Vi stänger sedan strömförfattaren efter att ha skrivit till filen. Det är normalt en bra praxis att stänga filhanterare när filen inte längre behövs för skrivändamål.
- Slutligen läser vi innehållet i filen igen och skriver det till konsolloggen. Detta är 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 de tre textraderna kan ses i konsolen.
Sammanfattning
- Strömmar används som en mellannivå mellan applikationen och filen.
- En StreamReader används när data krävs för att kunna läsas från en fil.
- En Streamwriter används när data behöver skrivas till en fil.