Strøm i C#: StreamReader og StreamWriter [Eksempel]
⚡ Smart oppsummering
AC# stream er et lag mellom applikasjonen din og en fil som lar deg lese eller skrive data i små biter. Her lærer du hvordan StreamReader og StreamWriter arbeid, med eksempler og hovedstrømstypene.

Hva er C# Stream?
I C#-filoperasjoner brukes vanligvis strømmer til å lese og skrive til filer. En strøm er et ekstra lag opprettet mellom en applikasjon og en fil. Strømmen brukes til å sikre jevne lese- og skriveoperasjoner til filen.
Strømmer brukes vanligvis når du leser data fra store filer. Ved å bruke strømmer brytes data fra store filer opp i små biter og sendes til strømmen. Disse databitene kan deretter leses fra applikasjonen.
Grunnen til å dele den opp i små biter er på grunn av ytelseseffekten av å lese en stor fil i ett skudd. Hvis du skulle lese dataene fra f.eks. en 100 MB fil på ett skudd, kan applikasjonen din bare henge og bli ustabil. Den beste tilnærmingen er da å bruke strømmer for å dele filen ned i håndterbare biter.
Så når en skriveoperasjon utføres på filen, blir dataene som skal skrives først skrevet til strømmen. Fra strømmen blir dataene deretter skrevet til filen. Det samme gjelder leseoperasjonen. I leseoperasjonen overføres data først fra filen til strømmen. Dataene leses deretter fra applikasjonen via strømmen. La oss se på et eksempel på hvordan vi kan lese og skrive ved hjelp av strømmer.
Typer strømmer i C#
Alle strømklasser i C# er avledet fra abstract Stream klasse i System.IO navnerom. Hver type er rettet mot en annen datakilde, men deler de samme lese- og skrivemetodene. De mest brukte strømmene er listet opp nedenfor.
- Filestream leser fra og skriver til filer på disken, én byte eller blokk om gangen.
- Minnestrøm lagrer data i minnet i stedet for en fil, noe som er nyttig for midlertidige buffere.
- BufferedStream pakker inn en annen strøm for å redusere antall operasjoner på en treg disk eller et nettverk.
- Nettverksstrøm sender og mottar data over en nettverkssocket.
For å jobbe med tekst tilbyr C# StreamReader og StreamWriter hjelpeklasser, som omslutter en strøm og dekkes i de neste avsnittene.
Stream Reader
Strømleseren brukes til å lese data fra en fil ved hjelp av strømmer. Dataene fra filen leses først inn i strømmen. Deretter leser applikasjonen dataene fra strømmen.
For vårt eksempel vil vi anta at vi har en fil i D-stasjonen som heter Eksempel.txt. Filen vil være en enkel tekstfil og ha 2 linjer som vist nedenfor
- Guru99 – .Net
- Guru99-C#
For eksempelet vårt vil vi lage en enkel konsollapplikasjon og jobbe med filstrømmer
La oss se på et eksempel på hvordan vi kan bruke strømmer til å lese data fra en fil. Skriv inn koden nedenfor i program.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(); } } }
Code Forklaring:-
- Først erklærer vi et strømleserobjekt. Strømleserobjektet brukes i C# for å definere en strøm fra filen til applikasjonen. Dataene vil bli presset fra filen til strømmen hver gang data leses fra filen. Filen.OpenText brukes til å åpne filen "Example.txt" i skrivebeskyttet modus. Behandleren til filen sendes deretter til strømleserobjektet.
- Deretter definerer vi en midlertidig variabel 's' som skal brukes til å lese alle dataene fra filen.
- Vi bruker deretter strømlesermetoden ReadLine for å lese hver linje fra strømbufferen. Når vi utfører dette drift, vil hver linje først overføres fra filen til bufferen. Deretter vil strenglinjen overføres fra bufferen til variabelen 's'. Vi skriver deretter innholdet av strengen 's' til konsollen.
Når koden ovenfor er satt, og prosjektet kjøres med Visual Studio, vil du få utgangen nedenfor.
Produksjon:-
Fra utgangen kan du se at Stream Reader leser begge linjene fra filen. Til slutt ble linjene i strengen lest fra strømmen sendt til konsollen.
Strøm Writer
Strømskriveren brukes til å skrive data til en fil ved hjelp av strømmer. Dataene fra applikasjonen skrives først inn i strømmen. Etter det skriver strømmen dataene til filen. La oss se på et eksempel på hvordan vi kan bruke strømmer til å skrive data fra en fil. Skriv inn koden nedenfor i program.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(); } } }
Code Forklaring:-
- Først erklærer vi et strømskriverobjekt. Strømskriverobjektet brukes i C# for å definere en strøm. Strømmen brukes deretter til å skrive data fra applikasjonen til filen. Dataene vil bli presset fra applikasjonen til strømmen hver gang data må skrives. Kommandoen File.AppendText brukes til å åpne filen "Example.txt" i en tilleggsmodus. Behandleren til filen sendes deretter til strømskriverobjektet.
- Vi bruker strømmeskrivemetoden Writeline for å skrive linjen «Guru99 – ASP.Net» til strømmen. Linjen fra strømmen vil deretter bli skrevet til filen.
- Vi lukker deretter strømskriveren etter å ha skrevet til filen. Det er vanligvis en god praksis å lukke filbehandlere når filen ikke lenger er nødvendig for skriveformål.
- Til slutt leser vi innholdet i filen igjen og skriver det til konsollloggen. Dette er for å sjekke om linjen ble skrevet til filen.
Når koden ovenfor er satt, og prosjektet kjøres med Visual Studio, vil du få utdataene nedenfor.
Produksjon:-
Fra utdataene kan du se at linjen «Guru99 – ASP.Net» ble lagt til i filen. Alle de tre tekstlinjene kan sees i konsollen.




