ホームページ >バックエンド開発 >C++ >C# でファイルの読み取りと書き込みを同時に行うにはどうすればよいですか?

C# でファイルの読み取りと書き込みを同時に行うにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-06 07:05:44383ブラウズ

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

C# でファイルの読み取りと書き込みを行う方法

C# でファイルを操作する場合、多くの場合、読み取りと書き込みの両方が必要になります。彼らに。ただし、同じファイルに対して StreamReader と StreamWriter を作成するだけでは、ファイルは読み取り専用モードで開かれるため機能しません。

ファイルの読み取りと書き込みを同時に行うには、単一のストリームを使用する必要があります。これは両方の操作に対して開かれます。これは、FileStream クラスを使用して実現できます。

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

FileStream コンストラクターは次の引数を受け取ります:

  • ファイルへのパス。
  • FileMode、ファイルを作成するか、開くか、追加するかを指定します。
  • FileAccess。ファイルの読み取り、書き込み、またはその両方が可能かどうか。
  • ファイルを他のプロセスと共有する方法を指定する FileShare。

この場合、 OpenOrCreate モードでファイルを開きます。つまり、ファイルがまだ存在しない場合は作成されます。また、ファイルを読み取り書き込みアクセスで開いています。これは、ファイルの読み取りと書き込みの両方ができることを意味します。最後に、ファイルを他のプロセスと共有しないよう指定しています。

FileStream を作成したら、それを使用して、それぞれ Read メソッドと Write メソッドを使用してファイルの読み取りとファイルへの書き込みを行うことができます。

次の例は、 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();
    }
}

この例では、ファイル「words.txt」を読み取り/書き込みモードで開きます。次に、ファイルを読み取り、その内容をコンソールに出力します。最後に、「This is a test」という文字列を書き込みます。ファイルにコピーします。

以上がC# でファイルの読み取りと書き込みを同時に行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。