なおFileStreamでは、コンストラクタにFileMode.Appendを指定してインスタンスを作成すれば、ファイルを開いたあと自動的にストリームの末尾にシークされます。 従って、次の例は上記の例と同等の動作となります。

FileStreamを作成する際に末尾にシークしてから内容を追記する
using System;
using System.IO;

class Sample {
  static void Main()
  {
    // FileMode.Appendを指定してFileStreamを作成
    using (var stream = new FileStream("sample.dat", FileMode.Append, FileAccess.Write)) {
      // 書き込むデータが格納されているバイト配列
      var buffer = new byte[8] {0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48};

      // bufferの8バイト分をstreamに書き込む
      stream.Write(buffer, 0, 8);
    }
  }
}

シーケンシャルアクセスのみをサポートするストリームに対してSeekメソッドを呼び出したり、Positionプロパティに値を設定しようとした場合には、例外NotSupportedExceptionがスローされます。 例えば、NetworkStreamや標準入出力のストリームはシークがサポートされないストリームです。