Heim Backend-Entwicklung C#.Net-Tutorial [C#-Tutorial] Eingabe und Ausgabe von C#-Dateien

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

Dec 24, 2016 pm 01:32 PM
c#

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>);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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();
        }
    }
}
Nach dem Login kopieren

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

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

C# 高级文件操作

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

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

主题

描述

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

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

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

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


Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

See all articles