C# StreamReader/StreamWriterとFileStreamの使用の詳細
テキストファイル操作にはStreamReaderとStreamWriterというクラス、バイナリファイル操作にはFileStreamというクラスが用いられます。以下に使い方の詳細を説明します。
StreamReader の使用方法:
- ファイルのパスを指定するか、FileStreamオブジェクトを渡すことでStreamReaderオブジェクトを作成します。
StreamReader reader = new StreamReader("file.txt");
StreamReader reader = new StreamReader(File.OpenRead("file.txt"));
- テキストファイルを読み込むには「ReadLine」メソッドで逐次行を読み込み、「ReadToEnd」メソッドで全文を一度に読み込むことができます。
string line = reader.ReadLine();
string content = reader.ReadToEnd();
- 読み込みが終わったファイルを閉じStream readerオブジェクトを読み込む必要があります。
reader.Close();
StreamWriterの利用方法
- FileWriterオブジェクトの作成:ファイルのパスを指定してFileWriterオブジェクトを作成することも、FileStreamオブジェクトを渡すこともできます。
StreamWriter writer = new StreamWriter("file.txt");
StreamWriter writer = new StreamWriter(File.OpenWrite("file.txt"));
- ファイルを書き込んでデータを保存するには、Write()メソッドでデータをファイルに書き込みます。WriteLine()メソッドでファイルを1行書き込みます。
writer.Write("Hello");
writer.WriteLine("World");
- 書き込みが終わったら、リソースを解放するためにStreamWriterオブジェクトを閉じる必要があります。
writer.Close();
ネイティブ化FileStreamの使用方法:
- FileStream オブジェクトを作成するには、ファイルのパス、読み込みモード、アクセス権が必要です。
FileStream fileStream = new FileStream("file.bin", FileMode.Open, FileAccess.ReadWrite);
- バイナリデータを読み取る:Read()メソッドで1バイトのバイナリデータを読み取ることができ、ReadByte()メソッドで1バイトのバイナリデータを読み取ることができ、ReadBytes()メソッドで指定された長さのバイナリデータを読み取ることができ。
byte[] buffer = new byte[1024];
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
- バイナリデータの書き込み: Write() メソッドは 1 バイトのバイナリ データを書き込み、WriteByte() メソッドは 1 バイトのバイナリ データを書き込み、WriteBytes() メソッドはバイト配列のバイナリ データを書き込みます。
byte[] data = { 0x01, 0x02, 0x03 };
fileStream.Write(data, 0, data.Length);
- FileStreamオブジェクトを閉じる:データの読み取りまたは書き込みが終わったら、リソースを開放するためにFileStreamオブジェクトを閉じる必要があります。
fileStream.Close();
本記事ではStreamReader/StreamWriterとFileStreamの詳しい使用方法を示しています。具体的なニーズとファイルのタイプに応じて、ファイル操作を処理するのに適したクラスを選択してください。