C# Entrée et sortie de fichiers
aFichierEst une collection de données stockée sur le disque avec un nom et un chemin de répertoire spécifiés. Lorsqu'un fichier est ouvert en lecture et en écriture, il devient unflux。
Fondamentalement, un flux est une séquence d'octets transmise via un chemin de communication. Il existe deux flux principaux :flux d'entréeetflux de sortie。flux d'entréeUtilisé pour lire des données à partir d'un fichier (opérations de lecture),flux de sortieUtilisé pour écrire des données dans un fichier (opérations d'écriture).
Classes d'E/S C#
L'espace de noms System.IO dispose de diverses classes 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 quelques classes non abstraites couramment utilisées dans l'espace de noms System.IO :
| Classe d'E/S | Description |
|---|---|
| BinaryReader | Lit des données brutes à partir d'un flux binaire. |
| BinaryWriter | Écrit des données brutes au format binaire. |
| BufferedStream | Stockage temporaire pour les flux d'octets. |
| Répertoire | Facilite les opérations sur la structure des répertoires. |
| DirectoryInfo | Utilisé pour effectuer des opérations sur les répertoires. |
| DriveInfo | Fournit des informations sur les lecteurs. |
| Fichier | Aide au traitement des fichiers. |
| FileInfo | Utilisé pour effectuer des opérations sur les fichiers. |
| FileStream | Utilisé pour la lecture et l'écriture à n'importe quelle position dans un fichier. |
| MemoryStream | Utilisé pour l'accès aléatoire aux flux de données stockés en mémoire. |
| Chemin | Effectue des opérations sur les informations de chemin. |
| StreamReader | Utilisé pour lire des caractères à partir d'un flux d'octets. |
| StreamWriter | Utilisé pour écrire des caractères dans un flux. |
| StringReader | Utilisé pour lire une mémoire tampon de chaîne. |
| StringWriter | Utilisé pour écrire dans une mémoire tampon de chaîne. |
Classe FileStream
Dans l'espace de noms System.IO,FileStreamLa classe facilite la lecture, l'écriture et la fermeture de fichiers. Cette classe dérive de la classe abstraite Stream.
Vous devez créer un objetFileStreampour créer un nouveau fichier, ou ouvrir un fichier existant. Pour créer unFileStream, la syntaxe de l'objet est la suivante :
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
Par exemple, créez un objet FileStreamFpour lire un fichier nommésample.txtFichier :
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
| Paramètre | Description |
|---|---|
| FileMode | FileModeL'énumération définit diverses méthodes d'ouverture de fichiers. Les membres de l'énumération FileMode sont :
|
| FileAccess | FileAccessLes membres de l'énumération sont :Read、ReadWriteetWrite。 |
| FileShare | FileShareLes membres de l'énumération sont :
|
Exemple
Le programme suivant illustre l'utilisation de la classeFileStream:
Exemple
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 les résultats suivants :
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#
Les exemples ci-dessus illustrent des opérations simples sur les fichiers en C#. Toutefois, pour exploiter pleinement les fonctionnalités puissantes des classes System.IO de C#, vous devez connaître les propriétés et méthodes couramment utilisées de ces classes.
Dans les sections suivantes, nous aborderons ces classes et les opérations qu'elles effectuent. Veuillez cliquer sur les liens pour en savoir plus sur chaque partie :
| sujet | Description |
|---|---|
| Lecture et écriture de fichiers texte | Cela implique la lecture et l'écriture de fichiers texte.StreamReaderetStreamWriterLa classe aide à réaliser la lecture et l'écriture de fichiers texte. |
| Lecture et écriture de fichiers binaires | Cela implique la lecture et l'écriture de fichiers binaires.BinaryReaderetBinaryWriterLa classe facilite la lecture et l'écriture de fichiers binaires. |
| Opérations sur le système de fichiers Windows | Il permet aux programmeurs C# de parcourir et de localiser les fichiers et répertoires Windows. |