Maison > Article > développement back-end > [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)!