C # Stream Tutorial: StreamReader, StreamWriter mit Beispiel

Inhaltsverzeichnis:

Anonim

Bei C # -Dateivorgängen werden normalerweise Streams zum Lesen und Schreiben in Dateien verwendet. Ein Stream ist eine zusätzliche Ebene, 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 aus großen Dateien in kleine Teile zerlegt und an den Stream gesendet. Diese Datenblöcke können dann aus der Anwendung gelesen werden.

Der Grund für die Aufteilung in kleine Teile liegt in der Auswirkung des Lesens einer großen Datei auf einmal auf die Leistung. Wenn Sie die Daten beispielsweise aus einer 100-MB-Datei auf einmal lesen, kann Ihre Anwendung einfach hängen bleiben und instabil werden. Der beste Ansatz ist dann, Streams zu verwenden, um die Datei in verwaltbare Blöcke zu zerlegen.

Wenn also eine Schreiboperation für eine Datei ausgeführt wird, werden die zu schreibenden Daten zuerst in den Stream geschrieben. Aus dem Stream werden die Daten dann in die Datei geschrieben. Gleiches gilt für den Lesevorgang. Beim Lesevorgang werden zunächst Daten von der Datei in den Stream übertragen. Die Daten werden dann über den Stream aus der Anwendung gelesen. Schauen wir uns ein Beispiel an, wie wir mithilfe von Streams lesen und schreiben können.

In diesem Tutorial lernen Sie:

  • Stream Reader
  • Stream Writer

Stream Reader

Der Stream-Reader wird verwendet, um Daten aus einer Datei mithilfe von Streams zu lesen. Die Daten aus der Datei werden zuerst in den Stream eingelesen. Danach liest die Anwendung die Daten aus dem Stream.

In unserem Beispiel wird davon ausgegangen, dass sich auf dem Laufwerk D eine Datei mit dem Namen Example.txt befindet. Die Datei ist eine einfache Textdatei und hat 2 Zeilen, wie unten gezeigt

  • Guru99 - .Net
  • Guru99 -C #

In unserem 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: -

  1. Zunächst 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 aus der Datei in den Stream übertragen, wenn Daten aus der Datei gelesen werden. Mit File.OpenText wird die Datei "Example.txt" im schreibgeschützten Modus geöffnet. Der Handler für die Datei wird dann an das Stream-Reader-Objekt gesendet.
  2. Als nächstes definieren wir eine temporäre Variable 's', mit der alle Daten aus der Datei gelesen werden.
  3. Wir verwenden dann die Stream-Reader-Methode ReadLine, um jede Zeile aus dem Stream-Puffer zu lesen. Wenn wir diesen Vorgang ausführen, wird jede Zeile zuerst von der Datei in den Puffer übertragen. Dann wird die String-Zeile vom Puffer in die Variable 's' übertragen. Wir schreiben dann den Inhalt der Zeichenfolge 's' in die Konsole.

Wenn der obige Code festgelegt ist und das Projekt mit Visual Studio ausgeführt wird, erhalten Sie die folgende Ausgabe.

Ausgabe:-

An der Ausgabe können Sie erkennen, dass der Stream Reader beide Zeilen aus der Datei gelesen hat. Schließlich wurden die Zeilen des aus dem Stream gelesenen Strings an die Konsole gesendet.

Stream Writer

Der Stream Writer wird verwendet, um Daten mithilfe von Streams in eine Datei zu schreiben. Die Daten aus der Anwendung werden zuerst 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: -

  1. Zunächst deklarieren wir ein Stream-Writer-Objekt. Das Stream-Writer-Objekt wird in C # verwendet, um einen Stream zu definieren. Der Stream wird dann verwendet, um Daten aus der Anwendung in die Datei zu schreiben. Die Daten werden von der Anwendung in den Stream übertragen, wenn Daten geschrieben werden müssen. Mit dem Befehl File.AppendText wird die Datei "Example.txt" in einem Append-Modus geöffnet. Der Handler für die Datei wird dann an das Stream-Writer-Objekt gesendet.
  2. Wir verwenden die Stream-Schreibmethode Writeline, um die Zeile "Guru99 - ASP.Net" in den Stream zu schreiben. Aus dem Stream wird die Zeile dann in die Datei geschrieben.
  3. Wir schließen dann den Stream-Writer, nachdem wir in die Datei geschrieben haben. Normalerweise empfiehlt es sich, Dateihandler zu schließen, wenn die Datei nicht mehr zum Schreiben benötigt wird.
  4. Schließlich lesen wir den Inhalt der Datei erneut 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:-

An der Ausgabe können Sie erkennen, dass die Zeile "Guru99 - ASP.Net" erfolgreich zur Datei hinzugefügt wurde. Alle 3 Textzeilen werden in der Konsole angezeigt.

Zusammenfassung

  • Streams werden als Zwischenebene zwischen der Anwendung und der Datei verwendet.
  • Ein StreamReader wird immer dann verwendet, wenn Daten aus einer Datei gelesen werden müssen.
  • Ein Streamwriter wird immer dann verwendet, wenn Daten in eine Datei geschrieben werden müssen.