Maîtriser les Flux de Fichiers C# : StreamReader et StreamWriter – Guide Pas à Pas
En E/S de fichiers C#, les flux servent d'intermédiaire entre votre application et le système de fichiers sous-jacent. Ils vous permettent de lire ou d'écrire dans des fichiers de manière efficace en mémoire, surtout lors de la manipulation de grands ensembles de données.
Au lieu de charger un fichier entier de 100 Mo en mémoire — ce qui peut faire geler votre application — les flux découpent les données en morceaux gérables. Cette approche maintient les performances fluides et prévient les plantages.
Vous trouverez ci-dessous des exemples concis démontrant comment lire et écrire des fichiers en utilisant StreamReader et StreamWriter. Suivez les instructions étape par étape pour intégrer ces patterns dans vos propres projets.
StreamReader – Lecture de Fichiers
La classe StreamReader lit du texte depuis un fichier ligne par ligne, passant les données à travers un tampon avant que votre application ne les traite.
Supposons que vous ayez un fichier nommé Exemple.txt sur le lecteur D contenant deux lignes :
- Guru99 – .Net
- Guru99 – C#
Créez une application console et ajoutez le code suivant à Program.cs :

using System;
using System.IO;
namespace DemoApplication {
class Tutoriel {
static void Main(string[] args) {
string path = @"D:\Exemple.txt";
using (StreamReader sr = File.OpenText(path)) {
string line;
while ((line = sr.ReadLine()) != null) {
Console.WriteLine(line);
}
}
Console.ReadKey();
}
}
}
Explication :
- Instancier
StreamReaderavecFile.OpenText, ouvrant le fichier en mode lecture seule. - Lire chaque ligne avec
ReadLine(), qui transfère les données du fichier vers le tampon puis vers la variableline. - Afficher chaque ligne sur la console.
L'exécution de ce programme dans Visual Studio affiche :

Les deux lignes de Exemple.txt apparaissent correctement, prouvant que le lecteur fonctionne comme prévu.
StreamWriter – Écriture dans les Fichiers
Inversement, StreamWriter écrit du texte depuis votre application vers un fichier via un tampon. Voici un exemple simple qui ajoute une ligne au même fichier Exemple.txt.

using System;
using System.IO;
namespace DemoApplication {
class Tutoriel {
static void Main(string[] args) {
string path = @"D:\Exemple.txt";
using (StreamWriter sw = File.AppendText(path)) {
sw.WriteLine("Guru99 – ASP.Net");
}
Console.WriteLine(File.ReadAllText(path));
Console.ReadKey();
}
}
}
Explication :
- Instancier
StreamWriteravecFile.AppendText, ouvrant le fichier en mode ajout. - Écrire une nouvelle ligne en utilisant
WriteLine(), qui pousse le texte dans le tampon puis vers le fichier. - Fermer l'écrivain automatiquement via le bloc
using. - Lire tout le contenu du fichier avec
File.ReadAllTextpour confirmer l'opération d'écriture.
L'exécution de ce programme montre :

La console affiche les trois lignes, confirmant que la nouvelle entrée a été ajoutée avec succès.
Points Clés à Retenir
- Les flux découplent l'E/S fichier de la logique applicative, permettant une gestion efficace des gros fichiers.
- Utilisez
StreamReaderpour lire du texte ligne par ligne. - Utilisez
StreamWriterpour écrire ou ajouter du texte, en vous assurant de fermer le flux pour libérer les handles de fichier.
Langue C
- Boucles for en C++ : Syntaxe, fonctionnement et exemples pratiques
- Maîtriser le switch-case en C++ : Syntaxe, utilisation et exemples pratiques
- Maîtriser l'allocation de tableaux dynamiques en C++ : Guide pratique avec exemples de code
- Maîtriser les flux C++ : cout, cin, cerr, clog – Guide pratique
- Les structures en C++ expliquées avec un exemple pratique
- Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques
- Classes Abstraites C# : Tutoriel Pratique avec Exemples de Code
- Maîtriser les Collections C# : Tutoriel Pratique avec Exemples Réels
- Lecture de Fichiers en Java avec BufferedReader – Guide Pratique avec Exemples