Check

Les Fichiers

On this page
Info Pour faciliter la compréhension du langage, nous utiliserons le mode console.

En C#, la plupart des périphériques sont considérés comme des flux entrants et sortants. Cela signifie que si le flux n’est pas mémorisé, les données transmises sont perdues (un peu comme une chaîne en direct : si vous êtes absent de l’écran, les informations sont perdues).

Le buffer

Comme la plupart des périphériques acceptent les entrées et les sorties, cela multiplie par deux les flux et buffets à déclarer.

ATTENTION la lecture d’un flux vide entraîne la génération d’une exception qui bloque l’exécution du programme.
Ainsi, la plupart du temps (et c’est aussi vrai en Java), il faudra ouvrir le flux et ouvrir un buffer :

  1. Ouvrir le flux du fichier
  2. Ouvrir le buffet du flux du fichier
  3. Lire/Écrire dans le buffer
  4. Fermer le buffer
  5. Fermer le flux

Code pour la lecture dans un fichier :

using System;
namespace FileReadExample
{
    class HelloWorld {
    static void Main() {
        FileStream monFlux = null ; // Créer un objet flux (en direct)
        StreamReader reader = null; // Créer un objet lecteur de flux (bufferise)
        string fileContent = "";
        try
        {
            // Ouverture
            monFlux = new FileStream(@"e:\test.txt",FileMode.Open);
            reader = new StreamReader(monFlux, Encoding.UTF8);
            // Lecture
            Console.WriteLine("Votre fichier contient : ");
            fileContent = reader.ReadToEnd();
            Console.WriteLine(fileContent)3
        }
        catch (Exception ex)
        {
            Console.WriteLine("Erreur de lecture !"+ex.Message);
        }
        finally
        {
            // Fermeture
            if (reader != null)
            { reader.Dispose(); // Fermer le buffer (libère sa mémoire)}
            if (reader != null)
            { monFlux.Dispose(); // Fermer le fichier (libère 1e canal)}
        }
    }
}

Code pour l’écriture dans un fichier :

using System;
namespace FileReadExample
{
    class HelloWorld {
    static void Main() {
        FileStream monFlux = null ; // Créer un objet flux (en direct)
        StreamWriter writer = null; // Créer un objet lecteur de flux (bufferise)
        string fileContent = "";
        try
        {
            // Ouverture pour ajouter une donnée
            monFlux = new FileStream(@"e:\test.txt",FileMode.Append);
            using (writer = new StreamWriter(monFlux, Encoding.UTF8));)
            {writer.WriteLine()"Écriture d’une ligne"; // Écriture}
            Console.WriteLine("L’écriture s’est correctement réalisée ");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Erreur de lecture !"+ex.Message);
        }
        finally
        {
            // Fermeture
            if (reader != null)
            { writer.Dispose(); // Fermer le buffer (libère sa mémoire)}
            if (reader != null)
            { monFlux.Dispose(); // Fermer le fichier (libère 1e canal)}
        }
    }
}