Bytes im Griff mit der Stream-Klasse: FileStream

Die Stream-Klasse ist die Basisklasse für verschiedene Stream-Klassen wie FileStream oder MemoryStream. Streams bieten die Möglichkeit, Byte-genau schreibend wie lesend auf Daten aus Dateien, dem Arbeitsspeicher oder dem Netzwerk zuzugreifen. Dieser Artikel zeigt, welche Stream-Klassen es gibt und geht genauer auf die FileStream-Klasse ein. Dabei zeigen wir, wie Sie mit dieser Klasse lesend und schreibend auf den Inhalt von Dateien zugreifen und den Inhalt mit Byte-Arrays austauschen.

Verschiedene Stream-Klassen

Es gibt folgende von der Stream-Klasse abgeleitete Klassen:

  • BufferedStream: Puffert Daten aus E/A-Datenströmen im Arbeitsspeicher.
  • CryptoStream: Verschlüsselt Daten.
  • FileStream: Schreibt Daten in Dateien im Dateisystem.
  • GZipStream: Komprimiert und dekomprimiert Streams.
  • MemoryStream: Schreibt einen Stream in den Hauptspeicher statt in eine temporäre Datei.
  • NetworkStream: Erlaubt den Zugriff auf Netzwerkressourcen.

Wir wollen uns in diesem Artikel auf die FileStream– und die MemoryStream-Klasse konzentrieren.

Die FileStream-Klasse

Mit der FileStream-Klasse können Sie byteweise aus Dateien lesen und in Dateien schreiben sowie einen Positionszeiger in einen Stream setzen. Der FileStream puffert dabei die Daten (bis zu acht Kilobyte). Wenn Sie ein Objekt auf Basis der FileStream-Klasse erzeugen wollen, können Sie per Konstruktor verschiedene Parameter übergeben:

  • path: Pfad der zu lesenden oder schreibenden Datei
  • mode: Modus für den Dateizugriff. Die Enumeration FileMode bietet folgende Werte: Append, Create, CreateNew, Open, OpenOrCreate, Truncate
  • access: Art des Dateizugriffs mit folgenden Werten der Enumeration FileAccess: Read, ReadWrite, Write
  • share: Gibt an, ob gemeinsamer Zugriff auf die Datei möglich ist. Die Enumeration FileShare liefert dazu die folgenden möglichen Werte: Delete, Inheritable, None, Read, ReadWrite, Write
  • bufferSize: Erlaubt das Ändern der Größe des Puffers auf einen anderen Wert als acht Kilobyte.
  • bool: Gibt an, ob asynchrone Zugriffe möglich sein sollen.

Byte-Array in eine Datei schreiben

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins DATENBANKENTWICKLER:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 200 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar