C # - Lecture et écriture dans des fichiers texte

le StreamReader et StreamWriterLes classes sont utilisées pour lire et écrire des données dans des fichiers texte. Ces classes héritent de la classe de base abstraite Stream, qui prend en charge la lecture et l'écriture d'octets dans un flux de fichiers.

La classe StreamReader

le StreamReaderLa classe hérite également de la classe de base abstraite TextReader qui représente un lecteur pour lire une série de caractères. Le tableau suivant décrit certains desmethods de la classe StreamReader -

N ° Sr. Méthode et description
1

public override void Close()

Il ferme l'objet StreamReader et le flux sous-jacent, et libère toutes les ressources système associées au lecteur.

2

public override int Peek()

Renvoie le prochain caractère disponible mais ne le consomme pas.

3

public override int Read()

Lit le caractère suivant du flux d'entrée et avance la position du caractère de un.

Exemple

L'exemple suivant illustre la lecture d'un fichier texte nommé Jamaica.txt. Le fichier lit -

Down the way where the nights are gay
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop

using System;
using System.IO;

namespace FileApplication {
   class Program {
      static void Main(string[] args) {
         try {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("c:/jamaica.txt")) {
               string line;

               // Read and display lines from the file until 
               // the end of the file is reached. 
               while ((line = sr.ReadLine()) != null) {
                  Console.WriteLine(line);
               }
            }
         } catch (Exception e) {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
         }
         Console.ReadKey();
      }
   }
}

Devinez ce qu'il affiche lorsque vous compilez et exécutez le programme!

La classe StreamWriter

le StreamWriter class hérite de la classe abstraite TextWriter qui représente un écrivain, qui peut écrire une série de caractères.

Le tableau suivant décrit les méthodes les plus couramment utilisées de cette classe -

N ° Sr. Méthode et description
1

public override void Close()

Ferme l'objet StreamWriter actuel et le flux sous-jacent.

2

public override void Flush()

Efface tous les tampons de l'enregistreur actuel et entraîne l'écriture de toutes les données en mémoire tampon dans le flux sous-jacent.

3

public virtual void Write(bool value)

Écrit la représentation textuelle d'une valeur booléenne dans la chaîne de texte ou le flux. (Hérité de TextWriter.)

4

public override void Write(char value)

Écrit un caractère dans le flux.

5

public virtual void Write(decimal value)

Écrit la représentation textuelle d'une valeur décimale dans la chaîne de texte ou le flux.

6

public virtual void Write(double value)

Écrit la représentation textuelle d'une valeur à virgule flottante de 8 octets dans la chaîne de texte ou le flux.

sept

public virtual void Write(int value)

Écrit la représentation textuelle d'un entier signé de 4 octets dans la chaîne de texte ou le flux.

8

public override void Write(string value)

Écrit une chaîne dans le flux.

9

public virtual void WriteLine()

Écrit un terminateur de ligne dans la chaîne de texte ou le flux.

Pour une liste complète des méthodes, veuillez visiter la documentation C # de Microsoft.

Exemple

L'exemple suivant illustre l'écriture de données texte dans un fichier à l'aide de la classe StreamWriter -

using System;
using System.IO;

namespace FileApplication {
   class Program {
      static void Main(string[] args) {
         string[] names = new string[] {"Zara Ali", "Nuha Ali"};
         
         using (StreamWriter sw = new StreamWriter("names.txt")) {

            foreach (string s in names) {
               sw.WriteLine(s);
            }
         }
         
         // Read and show each line from the file.
         string line = "";
         using (StreamReader sr = new StreamReader("names.txt")) {
            while ((line = sr.ReadLine()) != null) {
               Console.WriteLine(line);
            }
         }
         Console.ReadKey();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Zara Ali
Nuha Ali