大きな生ボリューム ファイル (MRI スキャンなど) の内容を読み書きしたいと考えています。これらのファイルは、たとえば 32 x 32 x 32 の float のシーケンスであるため、1D 配列に適切にマップされます。バイナリ ボリューム ファイルの内容を float または ushort (バイナリ ファイルのデータ型に応じて) などの 1D 配列に読み込んで、同様に配列を raw ボリューム ファイルにエクスポートできるようにしたいと考えています。
C#でこれを行う最良の方法は何ですか? BinaryReader/BinaryWriter で一度に 1 つの要素を読み書きしますか? それらを FileStream.Read でバイト配列に断片的に読み込んでから、配列間で System.Buffer.BlockCopy を実行しますか? 独自のリーダー/ライターを作成しますか?
編集: 2 GB を超えるアレイでは動作しないようですが、問題はまだ小さいアレイ (約 256 MB 程度) を表しています。