Flux en C# : StreamReader et StreamWriter [Exemple]
⚡ Résumé intelligent
AC# Stream est une couche intermédiaire entre votre application et un fichier qui vous permet de lire ou d'écrire des données par petits blocs. Vous découvrirez ici comment fonctionnent StreamReader et Stream.Writer travail, avec des exemples et les principaux types courants.
Qu’est-ce que le flux C# ?
Dans les opérations sur les fichiers C#, les flux sont normalement utilisés pour lire et écrire dans des fichiers. Un flux est une couche supplémentaire créée entre une application et un fichier. Le flux est utilisé pour garantir des opérations de lecture et d’écriture fluides dans le fichier.
Les flux sont normalement utilisés lors de la lecture de données à partir de fichiers volumineux. En utilisant des flux, les données des fichiers volumineux sont décomposées en petits morceaux et envoyées au flux. Ces morceaux de données peuvent ensuite être lus depuis l’application.
La raison pour laquelle il est divisé en petits morceaux est l'impact sur les performances de la lecture d'un gros fichier en une seule fois. Si vous deviez lire les données d'un fichier de 100 Mo d'un seul coup, par exemple, votre application pourrait tout simplement se bloquer et devenir instable. La meilleure approche consiste alors à utiliser des flux pour diviser le fichier en morceaux gérables.
Ainsi, lorsqu'une opération d'écriture est effectuée sur un fichier, les données à écrire sont d'abord écrites dans le flux. À partir du flux, les données sont ensuite écrites dans le fichier. Il en va de même pour l'opération de lecture. Lors de l'opération de lecture, les données sont d'abord transférées du fichier vers le flux. Les données sont ensuite lues depuis l'application via le flux. Regardons un exemple de la façon dont nous pouvons lire et écrire à l'aide de flux.
Types de flux en C#
Toutes les classes de flux en C# dérivent de la classe abstract Stream classe dans le System.IO Chaque type utilise un espace de noms spécifique. Il cible une source de données différente, mais partage les mêmes méthodes de lecture et d'écriture. Les flux les plus couramment utilisés sont listés ci-dessous.
- FileStream lit et écrit dans des fichiers sur disque, un octet ou un bloc à la fois.
- MemoryStream Il stocke les données en mémoire plutôt que dans un fichier, ce qui est utile pour les tampons temporaires.
- BufferedStream encapsule un autre flux pour réduire le nombre d'opérations lentes sur disque ou réseau.
- Flux de réseau Envoie et reçoit des données via une socket réseau.
Pour travailler avec du texte, C# fournit StreamReader et StreamWriter les classes d'assistance, qui encapsulent un flux et sont abordées dans les sections suivantes.
Lecteur de flux
Le lecteur de flux est utilisé pour lire les données d'un fichier à l'aide de flux. Les données du fichier sont d'abord lues dans le flux. Ensuite, l'application lit les données du flux.
Pour notre exemple, nous supposerons que nous avons un fichier dans le lecteur D appelé Exemple.txt. Le fichier sera un simple fichier texte et comportera 2 lignes comme indiqué ci-dessous
- Guru99 – .Net
- Guru99 -C#
Pour notre exemple, nous allons créer une application console simple et travailler avec des flux de fichiers
Regardons un exemple de la façon dont nous pouvons utiliser les flux pour lire les données d'un fichier. Entrez le code ci-dessous dans le fichier program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamReader sr = File.OpenText(path)) { String s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } Console.ReadKey(); } } }
Code Explication:-
- Tout d’abord, nous déclarons un objet lecteur de flux. L'objet stream reader est utilisé en C# pour définir un flux du fichier vers l'application. Les données seront poussées du fichier vers le flux chaque fois que des données seront lues à partir du fichier. Le fichier.OpenText permet d'ouvrir le fichier « Exemple.txt » en mode lecture seule. Le gestionnaire du fichier est ensuite envoyé à l'objet lecteur de flux.
- Ensuite, nous définissons une variable temporaire 's' qui sera utilisée pour lire toutes les données du fichier.
- Nous utilisons ensuite la méthode de lecture de flux ReadLine pour lire chaque ligne du tampon de flux. Quand nous effectuons cela la vente au détail h/, chaque ligne sera d'abord transférée du fichier vers le tampon. Ensuite, la ligne de chaîne sera transférée du tampon vers la variable 's'. Nous écrivons ensuite le contenu de la chaîne 's' dans la console.
Lorsque le code ci-dessus est défini et que le projet est exécuté en utilisant Visual Studio, vous obtiendrez le résultat ci-dessous.
Production:-
À partir de la sortie, vous pouvez voir que Stream Reader a lu les deux lignes du fichier. Enfin, les lignes de la chaîne lues dans le flux étaient envoyées à la console.
Discussions Writer
Le rédacteur de flux est utilisé pour écrire des données dans un fichier à l’aide de flux. Les données de l'application sont d'abord écrites dans le flux. Après cela, le flux écrit les données dans le fichier. Regardons un exemple de la façon dont nous pouvons utiliser des flux pour écrire des données à partir d'un fichier. Entrez le code ci-dessous dans le fichier program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamWriter sr = File.AppendText(path)) { sr.WriteLine("Guru99 - ASP.Net"); sr.Close(); Console.WriteLine(File.ReadAllText(path)); } Console.ReadKey(); } } }
Code Explication:-
- Tout d’abord, nous déclarons un objet streamwriter. L'objet streamwriter est utilisé en C# pour définir un flux. Le flux est ensuite utilisé pour écrire les données de l'application dans le fichier. Les données seront poussées de l'application vers le flux chaque fois que des données doivent être écrites. La commande File.AppendText est utilisée pour ouvrir le fichier « Example.txt » en mode ajout. Le gestionnaire du fichier est ensuite envoyé à l’objet streamwriter.
- Nous utilisons la méthode d'écriture de flux Writeline pour écrire la ligne «Guru99 – ASP.Net” au flux. À partir de ce flux, la ligne sera ensuite écrite dans le fichier.
- Nous fermons ensuite le streamwriter après avoir écrit dans le fichier. C'est normalement une bonne pratique de fermer les gestionnaires de fichiers lorsque le fichier n'est plus nécessaire à des fins d'écriture.
- Enfin, nous lisons à nouveau le contenu du fichier et l'écrivons dans le journal de la console. Il s'agit de vérifier si la ligne a été écrite dans le fichier.
Lorsque le code ci-dessus est défini et que le projet est exécuté à l'aide de Visual Studio, vous obtiendrez le résultat ci-dessous.
Production:-
D'après le résultat, vous pouvez constater que la ligne «Guru« 99 – ASP.Net » a été ajouté au fichier avec succès. Les trois lignes de texte sont visibles dans la console.





