Maison >développement back-end >C++ >Comment lire et écrire simultanément dans un fichier en C# ?

Comment lire et écrire simultanément dans un fichier en C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-06 07:05:44385parcourir

How to Simultaneously Read and Write to a File in C#?

Comment lire et écrire dans un fichier en C#

Lorsque vous travaillez avec des fichiers en C#, vous devez souvent à la fois lire et écrire pour eux. Cependant, créer simplement un StreamReader et un StreamWriter pour le même fichier ne fonctionnera pas, car le fichier sera ouvert en mode lecture seule.

Pour lire et écrire simultanément dans un fichier, vous devez utiliser un seul flux. qui est ouvert pour les deux opérations. Ceci peut être réalisé en utilisant la classe FileStream.

FileStream fileStream = new FileStream(
    @"c:\words.txt", FileMode.OpenOrCreate, 
    FileAccess.ReadWrite, FileShare.None);

Le constructeur FileStream prend les arguments suivants :

  • Le chemin d'accès au fichier.
  • Le FileMode, qui spécifie si le fichier doit être créé, ouvert ou ajouté.
  • Le FileAccess, qui spécifie si le fichier peut être lu depuis, écrit vers, ou les deux.
  • Le FileShare, qui spécifie comment le fichier peut être partagé avec d'autres processus.

Dans ce cas, nous ouvrons le fichier en mode OpenOrCreate , ce qui signifie que le fichier sera créé s'il n'existe pas déjà. Nous ouvrons également le fichier avec un accès ReadWrite, ce qui signifie que nous pouvons à la fois lire et écrire dans le fichier. Enfin, nous précisons que le fichier ne doit pas être partagé avec d'autres processus.

Une fois que vous avez créé un FileStream, vous pouvez l'utiliser pour lire et écrire dans le fichier en utilisant respectivement les méthodes Read et Write.

Exemple

L'exemple suivant montre comment lire et écrire dans un fichier à l'aide d'un FileStream :

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // Open the file in read/write mode.
        FileStream fileStream = new FileStream(
            @"c:\words.txt", FileMode.OpenOrCreate, 
            FileAccess.ReadWrite, FileShare.None);

        // Read the file.
        StreamReader reader = new StreamReader(fileStream);
        string line = reader.ReadLine();
        while (line != null)
        {
            Console.WriteLine(line);
            line = reader.ReadLine();
        }

        // Write to the file.
        StreamWriter writer = new StreamWriter(fileStream);
        writer.WriteLine("This is a test.");

        // Close the file.
        fileStream.Close();
    }
}

Cet exemple ouvrira le fichier "words.txt" en mode lecture/écriture. Il lira ensuite le fichier et imprimera son contenu sur la console. Enfin, il écrira la chaîne « Ceci est un test ». au fichier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn