C # - E / S de fichier

UNE fileest une collection de données stockées sur un disque avec un nom spécifique et un chemin de répertoire. Lorsqu'un fichier est ouvert en lecture ou en écriture, il devient unstream.

Le flux est essentiellement la séquence d'octets passant par le chemin de communication. Il existe deux courants principaux: leinput stream et le output stream. le input stream est utilisé pour lire les données du fichier (opération de lecture) et le output stream est utilisé pour écrire dans le fichier (opération d'écriture).

Classes d'E / S C #

L'espace de noms System.IO a diverses classes qui sont utilisées pour effectuer de nombreuses opérations avec des fichiers, telles que la création et la suppression de fichiers, la lecture ou l'écriture dans un fichier, la fermeture d'un fichier, etc.

Le tableau suivant montre certaines classes non abstraites couramment utilisées dans l'espace de noms System.IO -

N ° Sr. Classe d'E / S et description
1

BinaryReader

Lit les données primitives à partir d'un flux binaire.

2

BinaryWriter

Écrit les données primitives au format binaire.

3

BufferedStream

Un stockage temporaire pour un flux d'octets.

4

Directory

Aide à manipuler une structure de répertoires.

5

DirectoryInfo

Utilisé pour effectuer des opérations sur les répertoires.

6

DriveInfo

Fournit des informations sur les lecteurs.

sept

File

Aide à manipuler les fichiers.

8

FileInfo

Utilisé pour effectuer des opérations sur des fichiers.

9

FileStream

Utilisé pour lire et écrire à n'importe quel emplacement d'un fichier.

dix

MemoryStream

Utilisé pour un accès aléatoire aux données diffusées stockées en mémoire.

11

Path

Effectue des opérations sur les informations de chemin.

12

StreamReader

Utilisé pour lire les caractères d'un flux d'octets.

13

StreamWriter

Est utilisé pour écrire des caractères dans un flux.

14

StringReader

Est utilisé pour la lecture à partir d'un tampon de chaîne.

15

StringWriter

Est utilisé pour écrire dans un tampon de chaîne.

La classe FileStream

le FileStreamLa classe dans l'espace de noms System.IO facilite la lecture, l'écriture et la fermeture de fichiers. Cette classe dérive de la classe abstraite Stream.

Vous devez créer un FileStreamobjet pour créer un nouveau fichier ou ouvrir un fichier existant. La syntaxe de création d'unFileStream l'objet est le suivant -

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

Par exemple, nous créons un objet FileStream F pour lire un fichier nommé sample.txt as shown -

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
N ° Sr. Paramètre et description
1

FileMode

le FileModeEnumerator définit diverses méthodes pour ouvrir les fichiers. Les membres de l'énumérateur FileMode sont -

  • Append - Il ouvre un fichier existant et place le curseur à la fin du fichier, ou crée le fichier, si le fichier n'existe pas.

  • Create - Il crée un nouveau fichier.

  • CreateNew - Il spécifie au système d'exploitation, qu'il doit créer un nouveau fichier.

  • Open - Il ouvre un fichier existant.

  • OpenOrCreate - Il spécifie au système d'exploitation qu'il doit ouvrir un fichier s'il existe, sinon il doit créer un nouveau fichier.

  • Truncate - Il ouvre un fichier existant et tronque sa taille à zéro octet.

2

FileAccess

FileAccess les recenseurs ont des membres: Read, ReadWrite et Write.

3

FileShare

FileShare les recenseurs ont les membres suivants -

  • Inheritable - Il permet à un descripteur de fichier de transmettre l'héritage aux processus enfants

  • None - Il refuse le partage du fichier actuel

  • Read - Il permet d'ouvrir le fichier pour readin.

  • ReadWrite - Il permet d'ouvrir le fichier pour la lecture et l'écriture

  • Write - Il permet d'ouvrir le fichier pour l'écriture

Exemple

Le programme suivant montre l'utilisation du FileStream classe -

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

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

Opérations avancées sur les fichiers en C #

L'exemple précédent fournit des opérations simples sur les fichiers en C #. Cependant, pour utiliser les immenses pouvoirs des classes C # System.IO, vous devez connaître les propriétés et méthodes couramment utilisées de ces classes.

N ° Sr. Description du sujet
1 Lecture et écriture dans des fichiers texte

Il s'agit de lire et d'écrire dans des fichiers texte. leStreamReader et StreamWriter la classe aide à l'accomplir.

2 Lecture et écriture dans des fichiers binaires

Il s'agit de lire et d'écrire dans des fichiers binaires. leBinaryReader et BinaryWriter la classe aide à accomplir cela.

3 Manipulation du système de fichiers Windows

Il donne à un programmeur C # la possibilité de parcourir et de localiser les fichiers et répertoires Windows.