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: