Heim  >  Artikel  >  Backend-Entwicklung  >  [C#-Tutorial] Eingabe und Ausgabe von C#-Dateien

[C#-Tutorial] Eingabe und Ausgabe von C#-Dateien

黄舟
黄舟Original
2016-12-24 13:32:281269Durchsuche

C#-Dateieingabe und -ausgabe

Eine Datei ist eine Sammlung von Daten, die auf der Festplatte mit einem angegebenen Namen und Verzeichnispfad gespeichert sind. Wenn eine Datei zum Lesen oder Schreiben geöffnet wird, wird sie zu einem Stream.

Im Grunde ist ein Stream eine Folge von Bytes, die über einen Kommunikationspfad übertragen werden. Es gibt zwei Hauptströme: Eingabestrom und Ausgabestrom. Der Eingabestream wird zum Lesen von Daten aus der Datei (Lesevorgang) und der Ausgabestream zum Schreiben von Daten in die Datei (Schreibvorgang) verwendet.

C#-E/A-Klassen

Der System.IO-Namespace verfügt über verschiedene Klassen, die zum Ausführen verschiedener Dateivorgänge wie Erstellen und Löschen von Dateien, Lesen oder Schreiben von Dateien, Schließen von Dateien usw. verwendet werden.

In der folgenden Tabelle sind einige häufig verwendete nicht abstrakte Klassen im System.IO-Namespace aufgeführt:

I/O-Klassen

Beschreibung

BinaryReader Rohdaten aus Binärstrom lesen.

BinaryWriter Schreibt Rohdaten im Binärformat.

BufferedStream Temporäre Speicherung des Byte-Streams.

Verzeichnis hilft bei der Manipulation der Verzeichnisstruktur.

DirectoryInfo wird verwendet, um Vorgänge für Verzeichnisse auszuführen.

DriveInfo Stellt Laufwerksinformationen bereit.

Datei hilft bei der Dateiverarbeitung.

FileInfo wird verwendet, um Vorgänge an Dateien auszuführen.

FileStream wird zum Lesen und Schreiben an einer beliebigen Stelle in der Datei verwendet.

MemoryStream wird für den wahlfreien Zugriff auf den im Speicher gespeicherten Datenstrom verwendet.

Pfad Führt Operationen mit Pfadinformationen durch.

StreamReader wird verwendet, um Zeichen aus einem Byte-Stream zu lesen.

StreamWriter wird verwendet, um Zeichen in einen Stream zu schreiben.

StringReader wird zum Lesen des String-Puffers verwendet.

StringWriter wird zum Schreiben in den String-Puffer verwendet.

FileStream-Klasse

Die FileStream-Klasse im System.IO-Namespace erleichtert das Lesen, Schreiben und Schließen von Dateien. Diese Klasse ist von der abstrakten Klasse Stream abgeleitet.

Sie müssen ein FileStream-Objekt erstellen, um eine neue Datei zu erstellen oder eine vorhandene Datei zu öffnen. Die Syntax zum Erstellen eines FileStream-Objekts lautet wie folgt:

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

Erstellen Sie beispielsweise ein FileStream-Objekt F, um eine Datei mit dem Namen „sample.txt“ zu lesen:

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);

Parameter

Beschreibung

FileMode Die

FileMode-Enumeration definiert verschiedene Methoden zum Öffnen von Dateien. Die Mitglieder der FileMode-Enumeration sind:

Anhängen: Öffnen Sie eine vorhandene Datei und platzieren Sie den Cursor am Ende der Datei. Wenn die Datei nicht vorhanden ist, erstellen Sie die Datei.

Erstellen: Erstellen Sie eine neue Datei. Wenn die Datei bereits vorhanden ist, wird die alte Datei gelöscht und die neue Datei erstellt.

CreateNew: Gibt an, dass das Betriebssystem eine neue Datei erstellen soll. Wenn die Datei bereits vorhanden ist, wird eine Ausnahme ausgelöst.

Öffnen: Öffnen Sie eine vorhandene Datei. Wenn die Datei nicht existiert, wird eine Ausnahme ausgelöst.

OpenOrCreate: Gibt an, dass das Betriebssystem eine vorhandene Datei öffnen soll. Wenn die Datei nicht existiert, wird eine neue Datei mit dem angegebenen Namen erstellt und geöffnet.

Truncate: Öffnen Sie eine vorhandene Datei. Sobald die Datei geöffnet wird, wird sie auf die Größe Null Byte gekürzt. Wir können dann völlig neue Daten in die Datei schreiben, behalten aber das ursprüngliche Erstellungsdatum der Datei bei. Wenn die Datei nicht existiert, wird eine Ausnahme ausgelöst.

FileAccess Die Mitglieder der

FileAccess-Enumeration sind: Read, ReadWrite und Write.

FileShare Die Mitglieder der

FileShare-Enumeration sind:

Vererbbar: Ermöglicht die Vererbung von Dateihandles durch untergeordnete Prozesse . Win32 unterstützt diese Funktion nicht direkt.

Keine: Die Freigabe der aktuellen Datei ablehnen. Jede Anfrage zum Öffnen der Datei (von diesem Prozess oder einem anderen Prozess) schlägt fehl, bis die Datei geschlossen wird.

Lesen: Ermöglicht das anschließende Öffnen der Datei zum Lesen. Wenn dieses Flag nicht angegeben ist, schlägt jede Anforderung zum Öffnen der Datei zum Lesen (von diesem Prozess oder einem anderen Prozess) fehl, bis die Datei geschlossen wird. Selbst wenn dieses Flag angegeben ist, sind möglicherweise zusätzliche Berechtigungen für den Zugriff auf die Datei erforderlich.

ReadWrite: Ermöglicht das anschließende Öffnen der Datei zum Lesen oder Schreiben. Wenn dieses Flag nicht angegeben ist, schlägt jede Anforderung zum Öffnen der Datei zum Lesen oder Schreiben (von diesem Prozess oder einem anderen Prozess) fehl, bis die Datei geschlossen wird. Selbst wenn dieses Flag angegeben ist, sind möglicherweise zusätzliche Berechtigungen für den Zugriff auf die Datei erforderlich.

Write:允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。

Delete:允许随后删除文件。

   

实例

下面的程序演示了 FileStream 类的用法:

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();
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

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

C# 高级文件操作

上面的实例演示了 C# 中简单的文件操作。但是,要充分利用 C# System.IO 类的强大功能,您需要知道这些类常用的属性和方法。

在下面的章节中,我们将讨论这些类和它们执行的操作。请单击链接详细了解各个部分的知识:

主题

描述

文本文件的读写    它涉及到文本文件的读写。StreamReader 和 StreamWriter 类有助于完成文本文件的读写。    

二进制文件的读写    它涉及到二进制文件的读写。BinaryReader 和 BinaryWriter 类有助于完成二进制文件的读写。    

Windows 文件系统的操作    它让 C# 程序员能够浏览并定位 Windows 文件和目录。    

 以上就是【c#教程】C# 文件的输入与输出的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn