Stream in C#: StreamReader & StreamWriter [Beispiel]
โก Intelligente Zusammenfassung
Ein AC#-Stream ist eine Schicht zwischen Ihrer Anwendung und einer Datei, die es Ihnen ermรถglicht, Daten in kleinen Blรถcken zu lesen oder zu schreiben. Hier lernen Sie die Funktionsweise von StreamReader und Stream kennen.Writer Arbeiten, mit Beispielen und den gรคngigsten Typen.

Was ist C#-Stream?
Bei C#-Dateioperationen werden normalerweise Streams zum Lesen und Schreiben in Dateien verwendet. Ein Stream ist eine zusรคtzliche Schicht, die zwischen einer Anwendung und einer Datei erstellt wird. Der Stream wird verwendet, um reibungslose Lese- und Schreibvorgรคnge in der Datei sicherzustellen.
Streams werden normalerweise beim Lesen von Daten aus groรen Dateien verwendet. Durch die Verwendung von Streams werden die Daten groรer Dateien in kleine Blรถcke zerlegt und an den Stream gesendet. Diese Datenblรถcke kรถnnen dann von der Anwendung gelesen werden.
Der Grund fรผr die Aufteilung in kleine Teile liegt darin, dass es Auswirkungen auf die Leistung hat, wenn man eine groรe Datei auf einmal liest. Wenn Sie die Daten beispielsweise aus einer 100-MB-Datei auf einmal lesen wรผrden, kรถnnte Ihre Anwendung einfach hรคngen bleiben und instabil werden. Der beste Ansatz besteht dann darin, Streams zu verwenden, um die Datei in รผberschaubare Teile zu zerlegen.
Wenn also ein Schreibvorgang auf eine Datei ausgefรผhrt wird, werden die zu schreibenden Daten zuerst in den Stream geschrieben. Vom Stream werden die Daten dann in die Datei geschrieben. Dasselbe gilt fรผr den Lesevorgang. Beim Lesevorgang werden die Daten zuerst von der Datei in den Stream รผbertragen. Die Daten werden dann รผber den Stream von der Anwendung gelesen. Schauen wir uns ein Beispiel an, wie wir mithilfe von Streams lesen und schreiben kรถnnen.
Arten von Streams in C#
Alle Stream-Klassen in C# erben von der absoluten Klasse.tract Stream Klasse in der System.IO Namespace. Jeder Typ zielt auf eine andere Datenquelle ab, verwendet aber dieselben Lese- und Schreibmethoden. Die am hรคufigsten verwendeten Streams sind unten aufgefรผhrt.
- Filestream Liest und schreibt Dateien auf der Festplatte, jeweils Byte oder Block fรผr Block.
- Memorystream Speichert Daten im Arbeitsspeicher anstatt in einer Datei, was fรผr temporรคre Puffer nรผtzlich ist.
- BufferedStream umschlieรt einen weiteren Datenstrom, um die Anzahl langsamer Festplatten- oder Netzwerkoperationen zu reduzieren.
- NetworkStream Sendet und empfรคngt Daten รผber einen Netzwerk-Socket.
Fรผr die Arbeit mit Text bietet C# die StreamReader und StreamWriter Hilfsklassen, die einen Stream umschlieรen und in den nรคchsten Abschnitten behandelt werden.
Stream-Reader
Der Stream-Reader wird verwendet, um mithilfe von Streams Daten aus einer Datei zu lesen. Die Daten aus der Datei werden zunรคchst in den Stream eingelesen. Anschlieรend liest die Anwendung die Daten aus dem Stream.
Fรผr unser Beispiel gehen wir davon aus, dass wir auf dem Laufwerk D eine Datei namens โExample.txtโ haben. Die Datei ist eine einfache Textdatei und besteht aus zwei Zeilen, wie unten gezeigt
- Guru99 โ .NET
- Guru99 -C#
Fรผr unser Beispiel erstellen wir eine einfache Konsolenanwendung und arbeiten mit Dateistreams
Schauen wir uns ein Beispiel an, wie wir Streams zum Lesen von Daten aus einer Datei verwenden kรถnnen. Geben Sie den folgenden Code in die Datei program.cs ein.
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 Erlรคuterung:-
- Zuerst deklarieren wir ein Stream-Reader-Objekt. Das Stream-Reader-Objekt wird in C# verwendet, um einen Stream von der Datei zur Anwendung zu definieren. Die Daten werden immer dann aus der Datei in den Stream รผbertragen, wenn Daten aus der Datei gelesen werden. Die Datei.OpenText wird verwendet, um die Datei โExample.txtโ im schreibgeschรผtzten Modus zu รถffnen. Der Handler fรผr die Datei wird dann an das Stream-Reader-Objekt gesendet.
- Als nรคchstes definieren wir eine temporรคre Variable โsโ, die zum Lesen aller Daten aus der Datei verwendet wird.
- Wir verwenden dann die Stream-Reader-Methode ReadLine, um jede Zeile aus dem Stream-Puffer zu lesen. Wenn wir dies ausfรผhren Betriebwird zunรคchst jede Zeile aus der Datei in den Puffer รผbertragen. Anschlieรend wird der String line aus dem Puffer in die Variable 's' รผbertragen. Den Inhalt des Strings 's' schreiben wir dann in die Konsole.
Wenn der obige Code festgelegt ist und das Projekt mit ausgefรผhrt wird Visual Studio, erhalten Sie die folgende Ausgabe.
Ausgabe:-
Anhand der Ausgabe kรถnnen Sie erkennen, dass der Stream Reader beide Zeilen aus der Datei gelesen hat. Schlieรlich wurden die aus dem Stream gelesenen Zeilen der Zeichenfolge an die Konsole gesendet.
Strom Writer
Der Streamwriter wird verwendet, um Daten mithilfe von Streams in eine Datei zu schreiben. Die Daten der Anwendung werden zunรคchst in den Stream geschrieben. Danach schreibt der Stream die Daten in die Datei. Schauen wir uns ein Beispiel an, wie wir Streams zum Schreiben von Daten aus einer Datei verwenden kรถnnen. Geben Sie den folgenden Code in die Datei program.cs ein.
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 Erlรคuterung:-
- Zuerst deklarieren wir ein Stream-Writer-Objekt. Das Stream-Writer-Objekt wird in C# zum Definieren eines Streams verwendet. Der Stream wird dann verwendet, um Daten von der Anwendung in die Datei zu schreiben. Die Daten werden von der Anwendung an den Stream รผbertragen, wann immer Daten geschrieben werden mรผssen. Mit dem Befehl File.AppendText wird die Datei โExample.txtโ im Anhรคngemodus geรถffnet. Der Handler fรผr die Datei wird dann an das Stream-Writer-Objekt gesendet.
- Wir verwenden die Stream-Schreibmethode Writeline, um die Zeile โGuru99 โ ASP.Netโ wird in den Stream geschrieben. Aus dem Stream wird dann die Zeile in die Datei geschrieben.
- Anschlieรend schlieรen wir den Stream-Writer, nachdem wir in die Datei geschrieben haben. Normalerweise empfiehlt es sich, Dateihandler zu schlieรen, wenn die Datei nicht mehr fรผr Schreibzwecke benรถtigt wird.
- Zum Schluss lesen wir den Inhalt der Datei noch einmal und schreiben ihn in das Konsolenprotokoll. Hiermit wird รผberprรผft, ob die Zeile in die Datei geschrieben wurde.
Wenn der obige Code festgelegt ist und das Projekt mit Visual Studio ausgefรผhrt wird, erhalten Sie die folgende Ausgabe.
Ausgabe:-
Aus der Ausgabe kann man sehen, dass die Zeile โGuruDie Zeile โ99 โ ASP.Netโ wurde erfolgreich zur Datei hinzugefรผgt. Alle drei Textzeilen sind in der Konsole sichtbar.




