Tutoriel C # Stream: StreamReader, StreamWriter avec exemple

Table des matières:

Anonim

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 de gros fichiers sont décomposées en petits morceaux et envoyées au flux. Ces blocs de données peuvent ensuite être lus à partir de l'application.

La raison de la décomposition 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 à partir, par exemple, d'un fichier de 100 Mo en une seule fois, votre application pourrait 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 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.

Dans ce didacticiel, vous apprendrez-

  • Lecteur de flux
  • Rédacteur de flux

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é Example.txt. Le fichier sera un simple fichier texte et aura 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 des flux pour lire 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 (StreamReader sr = File.OpenText(path)){String s = "";while ((s = sr.ReadLine()) != null){Console.WriteLine(s);}}Console.ReadKey();}}}

Explication du code: -

  1. Tout d'abord, nous déclarons un objet lecteur de flux. L'objet lecteur de flux 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 les données sont lues à partir du fichier. Le File.OpenText permet d'ouvrir le fichier "Example.txt" en lecture seule. Le gestionnaire du fichier est ensuite envoyé à l'objet lecteur de flux.
  2. Ensuite, nous définissons une variable temporaire 's' qui sera utilisée pour lire toutes les données du fichier.
  3. Nous utilisons ensuite la méthode de lecture de flux ReadLine pour lire chaque ligne à partir du tampon de flux. Lorsque nous effectuons cette opération, 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» sur la console.

Lorsque le code ci-dessus est défini et que le projet est exécuté à l'aide de Visual Studio, vous obtiendrez la sortie ci-dessous.

Production:-

À partir de la sortie, vous pouvez voir que le Stream Reader lit les deux lignes du fichier. Enfin, les lignes de la chaîne lue dans le flux ont été envoyées à la console.

Rédacteur de flux

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

Explication du code: -

  1. Tout d'abord, nous déclarons un objet écrivain de flux. L'objet écrivain de flux 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 permet d'ouvrir le fichier "Example.txt" en mode ajout. Le gestionnaire du fichier est ensuite envoyé à l'objet écrivain de flux.
  2. Nous utilisons la méthode d'écriture de flux Writeline pour écrire la ligne "Guru99 - ASP.Net" dans le flux. À partir du flux, la ligne sera alors écrite dans le fichier.
  3. Nous fermons ensuite le graveur de flux après avoir écrit dans le fichier. Il est normalement recommandé de fermer les gestionnaires de fichiers lorsque le fichier n'est plus nécessaire à des fins d'écriture.
  4. Enfin, nous lisons à nouveau le contenu du fichier et l'écrivons dans le journal de la console. Ceci permet 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 la sortie ci-dessous.

Production:-

À partir de la sortie, vous pouvez voir que la ligne «Guru99 - ASP.Net» a été ajoutée au fichier avec succès. Les 3 lignes de texte peuvent être vues dans la console.

Résumé

  • Les flux sont utilisés comme niveau intermédiaire entre l'application et le fichier.
  • Un StreamReader est utilisé chaque fois que des données doivent être lues à partir d'un fichier.
  • Un Streamwriter est utilisé chaque fois que des données doivent être écrites dans un fichier.