C # - Datei-E / A.

EIN fileist eine Sammlung von Daten, die auf einer Festplatte mit einem bestimmten Namen und einem Verzeichnispfad gespeichert sind. Wenn eine Datei zum Lesen oder Schreiben geöffnet wird, wird sie zu einerstream.

Der Stream ist im Grunde die Folge von Bytes, die den Kommunikationspfad durchlaufen. Es gibt zwei Hauptströme: deninput stream und das output stream. Das input stream wird zum Lesen von Daten aus Dateien (Lesevorgang) und dem verwendet output stream wird zum Schreiben in die Datei verwendet (Schreibvorgang).

C # E / A-Klassen

Der System.IO-Namespace verfügt über verschiedene Klassen, die zum Ausführen zahlreicher Vorgänge mit Dateien verwendet werden, z. B. zum Erstellen und Löschen von Dateien, zum Lesen oder Schreiben aus einer Datei, zum Schließen einer Datei usw.

Die folgende Tabelle zeigt einige häufig verwendete nicht abstrakte Klassen im System.IO-Namespace.

Sr.Nr. E / A-Klasse & Beschreibung
1

BinaryReader

Liest primitive Daten aus einem Binärstrom.

2

BinaryWriter

Schreibt primitive Daten im Binärformat.

3

BufferedStream

Ein temporärer Speicher für einen Bytestrom.

4

Directory

Hilft bei der Bearbeitung einer Verzeichnisstruktur.

5

DirectoryInfo

Wird zum Ausführen von Vorgängen für Verzeichnisse verwendet.

6

DriveInfo

Bietet Informationen zu den Laufwerken.

7

File

Hilft bei der Bearbeitung von Dateien.

8

FileInfo

Wird zum Ausführen von Operationen an Dateien verwendet.

9

FileStream

Wird zum Lesen und Schreiben an einen beliebigen Ort in einer Datei verwendet.

10

MemoryStream

Wird für den wahlfreien Zugriff auf im Speicher gespeicherte gestreamte Daten verwendet.

11

Path

Führt Operationen an Pfadinformationen aus.

12

StreamReader

Wird zum Lesen von Zeichen aus einem Bytestream verwendet.

13

StreamWriter

Wird zum Schreiben von Zeichen in einen Stream verwendet.

14

StringReader

Wird zum Lesen aus einem String-Puffer verwendet.

15

StringWriter

Wird zum Schreiben in einen Zeichenfolgenpuffer verwendet.

Die FileStream-Klasse

Das FileStreamDie Klasse im System.IO-Namespace hilft beim Lesen, Schreiben und Schließen von Dateien. Diese Klasse leitet sich von der abstrakten Klasse Stream ab.

Sie müssen eine erstellen FileStreamObjekt, um eine neue Datei zu erstellen oder eine vorhandene Datei zu öffnen. Die Syntax zum Erstellen einesFileStream Objekt ist wie folgt -

FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
   <FileAccess Enumerator>, <FileShare Enumerator>);

Zum Beispiel erstellen wir ein FileStream-Objekt F zum Lesen einer Datei mit dem Namen sample.txt as shown - -

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
Sr.Nr. Parameter & Beschreibung
1

FileMode

Das FileModeEnumerator definiert verschiedene Methoden zum Öffnen von Dateien. Die Mitglieder des FileMode-Enumerators sind -

  • Append - Es öffnet eine vorhandene Datei und setzt den Cursor an das Ende der Datei oder erstellt die Datei, wenn die Datei nicht vorhanden ist.

  • Create - Es wird eine neue Datei erstellt.

  • CreateNew - Es gibt dem Betriebssystem an, dass eine neue Datei erstellt werden soll.

  • Open - Es öffnet eine vorhandene Datei.

  • OpenOrCreate - Es gibt dem Betriebssystem an, dass es eine Datei öffnen soll, falls vorhanden, andernfalls sollte eine neue Datei erstellt werden.

  • Truncate - Es öffnet eine vorhandene Datei und schneidet ihre Größe auf null Bytes ab.

2

FileAccess

FileAccess Enumeratoren haben Mitglieder: Read, ReadWrite und Write.

3

FileShare

FileShare Enumeratoren haben die folgenden Mitglieder -

  • Inheritable - Es ermöglicht einem Dateihandle, die Vererbung an die untergeordneten Prozesse zu übergeben

  • None - Die Freigabe der aktuellen Datei wird abgelehnt

  • Read - Es ermöglicht das Öffnen der Datei zum Einlesen.

  • ReadWrite - Es ermöglicht das Öffnen der Datei zum Lesen und Schreiben

  • Write - Es ermöglicht das Öffnen der Datei zum Schreiben

Beispiel

Das folgende Programm demonstriert die Verwendung von FileStream Klasse -

using System;
using System.IO;

namespace FileIOApplication {
   class Program {
      static void Main(string[] args) {
         FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, 
            FileAccess.ReadWrite);
         
         for (int i = 1; i <= 20; i++) {
            F.WriteByte((byte)i);
         }
         F.Position = 0;
         for (int i = 0; i <= 20; i++) {
            Console.Write(F.ReadByte() + " ");
         }
         F.Close();
         Console.ReadKey();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1

Erweiterte Dateivorgänge in C #

Das vorstehende Beispiel enthält einfache Dateioperationen in C #. Um jedoch die immensen Fähigkeiten von C # System.IO-Klassen nutzen zu können, müssen Sie die häufig verwendeten Eigenschaften und Methoden dieser Klassen kennen.

Sr.Nr. Themenbeschreibung
1 Lesen aus und Schreiben in Textdateien

Es beinhaltet das Lesen und Schreiben in Textdateien. DasStreamReader und StreamWriter Klasse hilft, es zu erreichen.

2 Lesen aus und Schreiben in Binärdateien

Es beinhaltet das Lesen und Schreiben in Binärdateien. DasBinaryReader und BinaryWriter Klasse hilft, dies zu erreichen.

3 Bearbeiten des Windows-Dateisystems

Es gibt einem C # -Programmierer die Möglichkeit, Windows-Dateien und -Verzeichnisse zu durchsuchen und zu suchen.