Heim >Backend-Entwicklung >C++ >Wie kann ich in C# gleichzeitig in eine Datei lesen und schreiben?

Wie kann ich in C# gleichzeitig in eine Datei lesen und schreiben?

Barbara Streisand
Barbara StreisandOriginal
2025-01-06 07:05:44423Durchsuche

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

So lesen und schreiben Sie in eine Datei in C#

Bei der Arbeit mit Dateien in C# müssen Sie häufig sowohl lesen als auch schreiben zu ihnen. Das einfache Erstellen eines StreamReader und StreamWriter für dieselbe Datei funktioniert jedoch nicht, da die Datei im schreibgeschützten Modus geöffnet wird.

Um gleichzeitig in eine Datei zu lesen und zu schreiben, müssen Sie einen einzelnen Stream verwenden das für beide Operationen geöffnet ist. Dies kann mit der FileStream-Klasse erreicht werden.

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

Der FileStream-Konstruktor akzeptiert die folgenden Argumente:

  • Der Pfad zur Datei.
  • Der FileMode, Gibt an, ob die Datei erstellt, geöffnet oder angehängt werden soll.
  • Der FileAccess gibt an, ob aus der Datei gelesen oder geschrieben werden kann zu, oder beides.
  • Das FileShare, das angibt, wie die Datei mit anderen Prozessen geteilt werden kann.

In diesem Fall öffnen wir die Datei im OpenOrCreate-Modus, d. h dass die Datei erstellt wird, falls sie noch nicht vorhanden ist. Wir öffnen die Datei auch mit ReadWrite-Zugriff, was bedeutet, dass wir sowohl aus der Datei lesen als auch in sie schreiben können. Abschließend geben wir an, dass die Datei nicht mit anderen Prozessen geteilt werden soll.

Sobald Sie einen FileStream erstellt haben, können Sie ihn verwenden, um mit den Lese- bzw. Schreibmethoden aus der Datei zu lesen und in sie zu schreiben.

Beispiel

Das folgende Beispiel zeigt, wie man mit a aus einer Datei liest und in sie schreibt 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();
    }
}

In diesem Beispiel wird die Datei „words.txt“ im Lese-/Schreibmodus geöffnet. Anschließend wird die Datei gelesen und ihr Inhalt auf der Konsole ausgegeben. Schließlich wird die Zeichenfolge „Dies ist ein Test“ geschrieben. zur Datei.

Das obige ist der detaillierte Inhalt vonWie kann ich in C# gleichzeitig in eine Datei lesen und schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn