Maîtriser les entrées/sorties fichiers en C# : lecture, écriture et flux
Un fichier est une collection de données stockées sur disque avec un nom et un chemin. Ouvert en lecture/écriture, il devient un flux (stream) : séquence d'octets passant par un chemin de communication.
Deux flux principaux : flux d'entrée (lecture) et flux de sortie (écriture).
Classes E/S dans System.IO
| Classe | Description |
|---|---|
BinaryReader | Lit données primitives depuis flux binaire |
BinaryWriter | Écrit données primitives en format binaire |
BufferedStream | Stockage temporaire pour flux d'octets |
Directory | Manipulation structure répertoires |
DirectoryInfo | Opérations sur répertoires |
DriveInfo | Informations sur lecteurs |
File | Manipulation fichiers (statiques) |
FileInfo | Opérations sur fichiers (instance) |
FileStream | Lecture/écriture à tout emplacement fichier |
MemoryStream | Accès aléatoire données en mémoire |
Path | Opérations sur chemins |
StreamReader | Lecture caractères depuis flux octets |
StreamWriter | Écriture caractères vers flux |
StringReader | Lecture depuis tampon chaîne |
StringWriter | Écriture dans tampon chaîne |
La classe FileStream
Lit, écrit, ferme fichiers. Dérive de Stream abstrait.
Création :
FileStream fs = new FileStream(nom_fichier, FileMode, FileAccess, FileShare);
Paramètres principaux
| Paramètre | Description |
|---|---|
| FileMode | Append, Create, CreateNew, Open, OpenOrCreate, Truncate |
| FileAccess | Read, ReadWrite, Write |
| FileShare | None, Read, ReadWrite, Write, Inheritable |
Exemple FileStream
using System;
using System.IO;
namespace ApplicationFichier
{
class Programme
{
static void Main(string[] args)
{
FileStream fs = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);
for (int i = 1; i <= 20; i++)
fs.WriteByte((byte)i);
fs.Position = 0;
for (int i = 0; i <= 20; i++)
Console.Write(fs.ReadByte() + " ");
fs.Close();
Console.ReadKey();
}
}
}
Résultat : 1 2 3 ... 20 -1 (-1 = fin de flux)
Opérations fichiers avancées
| Sujet | Description |
|---|---|
| Fichiers texte | Lecture/écriture texte via StreamReader/StreamWriter |
| Fichiers binaires | Lecture/écriture binaire via BinaryReader/BinaryWriter |
| Système fichiers Windows | Parcourir/manipuler fichiers et répertoires |
Exemple StreamReader/StreamWriter
// Écriture
using (StreamWriter sw = new StreamWriter("fichier.txt"))
{
sw.WriteLine("Ligne 1");
sw.WriteLine("Ligne 2");
}
// Lecture
using (StreamReader sr = new StreamReader("fichier.txt"))
{
string ligne;
while ((ligne = sr.ReadLine()) != null)
Console.WriteLine(ligne);
}
Le bloc using assure la fermeture automatique (implémente IDisposable).
Langue C
- Titane : propriétés clés, applications et utilisations industrielles
- Étain : de l'âge du bronze à l'industrie moderne — usages, production et avenir
- Maîtriser l'entrée/sortie en C : scanf() et printf() expliqués
- Gestion des fichiers en C : Maîtriser les E/S avec fopen, fprintf, fread et fseek
- Entrées/sorties de fichiers Python : maîtriser les opérations sur les fichiers
- Maîtriser les entrées/sorties fichiers en C : Création, ouverture et gestion
- Comprendre les fichiers d'en-tête C : Types, utilisation et bonnes pratiques
- Entrées/Sorties de fichiers en Python : Maîtriser les opérations de lecture et d'écriture
- Maîtriser les outils de limage : coupe de précision pour projets métal et bois