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 es ist: Ein Stream ist eine Zwischenschicht zwischen Ihrer Anwendung und einer Datei.
  • ???? StreamReader: StreamReader liest Text aus einer Datei zeilen- oder abschnittsweise.
  • ✍️ StromWriter: StromWriter Schreibt Text über einen Datenstrom in eine Datei.
  • 🧩 Stream-Typen: FileStream, MemoryStream und BufferedStream-Klassen sind alle von der Stream-Klasse abgeleitet.
  • 🤖 KI-Hilfe: KI-Tools wie GitHub Copilot generieren sofort C#-Stream-Code.

C# Stream Reader und Writer

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.

Stream-Reader

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. 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.
  2. Als nächstes definieren wir eine temporäre Variable „s“, die zum Lesen aller Daten aus der Datei verwendet wird.
  3. 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:-

Stream-Reader

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.

Strom Writer

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. 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.
  2. 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.
  3. 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.
  4. 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:-

Strom Writer

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.

Häufig gestellte Fragen

Ein Datenstrom ist eine Zwischenschicht zwischen einer Anwendung und einer Datei. Er zerlegt große Dateien in kleine Teile, sodass Daten gelesen oder geschrieben werden können, ohne die gesamte Datei in den Speicher laden zu müssen.

StreamReader liest Textdaten aus einer Datei über einen Datenstrom. Datei.OpenText Gibt einen StreamReader zurück, dessen ReadLine-Methode die Datei zeilenweise liest.

StromWriter Schreibt Textdaten über einen Stream in eine Datei. File.AppendText gibt einen Stream zurück.Writerund seine WriteLine-Methode sendet jede Zeile in die Datei.

Gängige Datenströme sind beispielsweise FileStream für Dateien und MemoryStream für Daten im Arbeitsspeicher. BufferedStream für Pufferung und NetworkStream für Sockets. Alle leiten sich von abs abs ab.tract Stream-Klasse.

FileStream liest und schreibt Rohdaten in eine Datei, während StreamReader einen Datenstrom verarbeitet, um Text als Zeichen und Zeilen zu lesen. StreamReader ist für Textdateien einfacher zu verwenden.

KI-Assistenten wie GitHub Copilot vervollständigen StreamReader und Stream automatisch.Writer Code, using-Blöcke für die Freigabe hinzufügen und aus einem kurzen Kommentar Dateileseschleifen generieren.

Ja. KI-gestützte Tools generieren Methoden zum Lesen und Schreiben von Datenströmen, schlagen Pufferung für große Dateien vor und fügen using-Anweisungen hinzu, um ein sicheres Schließen der Datenströme zu gewährleisten.

Eine using-Anweisung schließt und gibt den Stream automatisch frei, sobald der Block endet, selbst wenn ein Fehler auftritt. Dadurch wird der Dateihandle freigegeben und Ressourcenlecks werden verhindert.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: