ファイルの書き出し位置を指定する|C#

   

書き込みモードでファイルを開いたまま、内容を上書きしていく方法です。

書式

FileStreamクラスのSeekメソッドを使用して書き出し位置を指定します。

long Seek(long offset, SeekOrigin origin)

SeekOrigin 列挙型

メンバ名 説明
Begin ストリームの先頭を指定します。offsetは正の値を設定します。
Current ストリーム内の現在位置を指定します。
End ストリームの末尾を指定します。offsetは負の値を設定します。

サンプル

下記サンプルでは書き出し実行毎にファイル内容が

000
111
222

と変化します。

using System.IO;

// 変数定義
private FileStream _stream;
private int _num;

// 生成
_stream = new FileStream(@"output.txt", FileMode.Create);
_num = 48;

// 書き出し
byte[] bytes = new byte[3];
bytes[0] = (byte)(_num);
bytes[1] = (byte)(_num);
bytes[2] = (byte)(_num);
_stream.Seek(0, SeekOrigin.Begin);
_stream.Write(bytes, 0, bytes.Length);
_stream.Flush();
_num++;


// 終了
_stream.Close();

 - C#