C # Stream Tutorial: StreamReader, StreamWriter med eksempel

Indholdsfortegnelse:

Anonim

I C # -filhandlinger bruges streams normalt til at læse og skrive til filer. En stream er et ekstra lag oprettet mellem en applikation og en fil. Strømmen bruges til at sikre jævn læse- og skriveoperationer til filen.

Streams bruges normalt, når man læser data fra store filer. Ved at bruge streams opdeles dataene fra store filer i små bidder og sendes til streamen. Disse klumper af data kan derefter læses fra applikationen.

Årsagen til at nedbryde det i små stykker er på grund af ydeevnen ved at læse en stor fil i et skud. Hvis du skulle læse dataene fra f.eks. En 100 MB-fil på én gang, kunne din applikation bare hænge og blive ustabil. Den bedste tilgang er derefter at bruge streams til at nedbryde filen i håndterbare bidder.

Så når en skrivehandling udføres på filen, skrives de data, der skal skrives, først til strømmen. Fra streamen skrives dataene derefter til filen. Det samme gælder for læsning. I læsningsoperationen overføres data først fra filen til streamen. Dataene læses derefter fra applikationen via strømmen. Lad os se på et eksempel på, hvordan vi kan læse og skrive ved hjælp af streams.

I denne vejledning lærer du-

  • Stream Reader
  • Stream Writer

Stream Reader

Streamlæseren bruges til at læse data fra en fil ved hjælp af streams. Dataene fra filen læses først i strømmen. Derefter læser applikationen dataene fra streamen.

I vores eksempel antager vi, at vi har en fil i D-drevet kaldet Example.txt. Filen er en simpel tekstfil og har 2 linjer som vist nedenfor

  • Guru99 - .Net
  • Guru99 -C #

For vores eksempel opretter vi en simpel konsolapplikation og arbejder med filstrømme

Lad os se på et eksempel på, hvordan vi kan bruge streams til at læse data fra en fil. Indtast nedenstående kode 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();}}}

Kode Forklaring: -

  1. For det første erklærer vi et stream reader-objekt. Stream-læserobjektet bruges i C # til at definere en stream fra filen til applikationen. Dataene skubbes fra filen til strømmen, hver gang data læses fra filen. File.OpenText bruges til at åbne filen "Eksempel.txt" i skrivebeskyttet tilstand. Handleren til filen sendes derefter til stream-reader-objektet.
  2. Dernæst definerer vi en midlertidig variabel 's', som bruges til at læse alle data fra filen.
  3. Vi bruger derefter stream-reader-metoden ReadLine til at læse hver linje fra stream-bufferen. Når vi udfører denne handling, overføres hver linje først fra filen til bufferen. Derefter overføres strengelinjen fra bufferen til variablen 's'. Vi skriver derefter indholdet af strengen 's' til konsollen.

Når ovenstående kode er indstillet, og projektet køres ved hjælp af Visual Studio, får du nedenstående output.

Produktion:-

Fra output kan du se, at Stream Reader læser begge linjerne fra filen. Endelig blev strengene, der blev læst fra strømmen, sendt til konsollen.

Stream Writer

Streamforfatteren bruges til at skrive data til en fil ved hjælp af streams. Dataene fra applikationen skrives først ind i strømmen. Derefter skriver streamen dataene til filen. Lad os se på et eksempel på, hvordan vi kan bruge streams til at skrive data fra en fil. Indtast nedenstående kode 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();}}}

Kode Forklaring: -

  1. For det første erklærer vi et streamwriter-objekt. Strømforfatterobjektet bruges i C # til at definere en strøm. Strømmen bruges derefter til at skrive data fra applikationen til filen. Dataene skubbes fra applikationen til strømmen, når der skal skrives data. File.AppendText-kommandoen bruges til at åbne filen "Eksempel.txt" i en tilføjelsestilstand. Handleren til filen sendes derefter til streamwriter-objektet.
  2. Vi bruger streamskrivningsmetoden Writeline til at skrive linjen "Guru99 - ASP.Net" til strømmen. Fra streamen skrives linjen til filen.
  3. Vi lukker derefter streamskribenten efter at have skrevet til filen. Det er normalt en god praksis at lukke filhåndterere, når filen ikke længere er nødvendig til skrivningsformål.
  4. Endelig læser vi indholdet af filen igen og skriver det til konsolloggen. Dette er for at kontrollere, om linjen blev skrevet til filen.

Når ovenstående kode er indstillet, og projektet køres ved hjælp af Visual Studio, får du nedenstående output.

Produktion:-

Fra output kan du se, at linjen "Guru99 - ASP.Net" blev tilføjet til filen med succes. Alle de 3 tekstlinjer kan ses i konsollen.

Resumé

  • Streams bruges som et mellemliggende niveau mellem applikationen og filen.
  • En StreamReader bruges, når data skal læses fra en fil.
  • En Streamwriter bruges, når data skal skrives til en fil.