[Tutoriel C#] Entrée et sortie de fichier C#
Entrée et sortie de fichier C#
Un fichier est une collection de données stockées sur le disque avec un nom et un chemin de répertoire spécifiés. Lorsqu'un fichier est ouvert en lecture ou en écriture, il devient un flux.
Fondamentalement, un flux est une séquence d'octets transmis sur un chemin de communication. Il existe deux flux principaux : le flux d’entrée et le flux de sortie. Le flux d'entrée est utilisé pour lire les données du fichier (opération de lecture) et le flux de sortie est utilisé pour écrire des données dans le fichier (opération d'écriture).
Classes d'E/S C#
L'espace de noms System.IO comporte différentes classes qui sont utilisées pour effectuer diverses opérations sur les fichiers telles que la création et la suppression de fichiers, la lecture ou l'écriture de fichiers, la fermeture de fichiers, etc.
Le tableau suivant répertorie certaines classes non abstraites couramment utilisées dans l'espace de noms System.IO :
Classes d'E/S
Description
BinaryReader Lit les données brutes du flux binaire.
BinaryWriter Écrit des données brutes au format binaire.
BufferedStream Stockage temporaire du flux d'octets.
Directory permet de manipuler la structure des répertoires.
DirectoryInfo est utilisé pour effectuer des opérations sur les répertoires.
DriveInfo Fournit des informations sur le lecteur.
File aide au traitement des fichiers.
FileInfo est utilisé pour effectuer des opérations sur les fichiers.
FileStream est utilisé pour lire et écrire n'importe où dans le fichier.
MemoryStream est utilisé pour un accès aléatoire au flux de données stocké en mémoire.
Chemin Effectuez des opérations sur les informations de chemin.
StreamReader est utilisé pour lire les caractères d'un flux d'octets.
StreamWriter est utilisé pour écrire des caractères dans un flux.
StringReader est utilisé pour lire le tampon de chaîne.
StringWriter est utilisé pour écrire dans le tampon de chaîne.
Classe FileStream
La classe FileStream dans l'espace de noms System.IO facilite la lecture, l'écriture et la fermeture de fichiers. Cette classe est dérivée de la classe abstraite Stream.
Vous devez créer un objet FileStream pour créer un nouveau fichier ou ouvrir un fichier existant. La syntaxe de création d'un objet FileStream est la suivante :
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
Par exemple, créez un objet FileStream F pour lire un fichier nommé sample.txt :
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
Paramètres
Description
FileMode L'énumération
FileMode définit différentes méthodes d'ouverture de fichiers. Les membres de l'énumération FileMode sont :
Append : ouvrez un fichier existant et placez le curseur à la fin du fichier. Si le fichier n'existe pas, créez le fichier.
Créer : créer un nouveau fichier. Si le fichier existe déjà, l'ancien fichier est supprimé et le nouveau fichier est créé.
CreateNew : Spécifie que le système d'exploitation doit créer un nouveau fichier. Si le fichier existe déjà, une exception est levée.
Ouvrir : ouvrir un fichier existant. Si le fichier n'existe pas, une exception est levée.
OpenOrCreate : Spécifie que le système d'exploitation doit ouvrir un fichier existant. Si le fichier n'existe pas, un nouveau fichier est créé avec le nom spécifié et ouvert.
Tronquer : ouvrez un fichier existant. Une fois le fichier ouvert, il sera tronqué à une taille de zéro octet. Nous pouvons alors écrire des données complètement nouvelles dans le fichier tout en conservant la date de création originale du fichier. Si le fichier n'existe pas, une exception est levée.
FileAccess Les membres de l'énumération
FileAccess sont : Read, ReadWrite et Write.
FileShare Les membres de l'énumération
FileShare sont :
Héritable : permet aux processus enfants d'hériter des descripteurs de fichiers. . Win32 ne prend pas directement en charge cette fonctionnalité.
Aucun : refuser de partager le fichier actuel. Toute demande d'ouverture du fichier (à partir de ce processus ou d'un autre processus) échouera jusqu'à la fermeture du fichier.
Lecture : Permet l'ouverture ultérieure du fichier en lecture. Si cet indicateur n'est pas spécifié, toute demande d'ouverture du fichier en lecture (à partir de ce processus ou d'un autre processus) échouera jusqu'à la fermeture du fichier. Cependant, même si cet indicateur est spécifié, des autorisations supplémentaires peuvent être requises pour accéder au fichier.
ReadWrite : Permet d'ouvrir ultérieurement le fichier en lecture ou en écriture. Si cet indicateur n'est pas spécifié, toute demande d'ouverture du fichier en lecture ou en écriture (à partir de ce processus ou d'un autre processus) échouera jusqu'à la fermeture du fichier. Cependant, même si cet indicateur est spécifié, des autorisations supplémentaires peuvent être requises pour accéder au fichier.
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)!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Guide de sérialisation C#. Nous discutons ici de l'introduction, des étapes de l'objet de sérialisation C#, du fonctionnement et de l'exemple respectivement.

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.

La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.
