バイナリファイルを解析プログラムに読み込んでいます。ファイルを反復処理して特定のマーカーを探す必要があります。これにより、ファイルを分割して、それらの部分をそれぞれのオブジェクトのコンストラクターに渡すことができます。
ファイルをMemoryStreamまたはFileStreamのいずれかのストリームとして保持することには利点がありますか、それともbyte []配列に変換する必要がありますか?
キース
バイナリファイルを解析プログラムに読み込んでいます。ファイルを反復処理して特定のマーカーを探す必要があります。これにより、ファイルを分割して、それらの部分をそれぞれのオブジェクトのコンストラクターに渡すことができます。
ファイルをMemoryStreamまたはFileStreamのいずれかのストリームとして保持することには利点がありますか、それともbyte []配列に変換する必要がありますか?
キース
Abyte[]
またはMemoryStream
両方の場合、ファイル全体をメモリに取り込む必要があります。AMemoryStream
は実際には、基になるバイト配列のラッパーです。最良のアプローチは、2 つFileStream
(入力用と出力用に 1 つ) を用意することです。現在の出力ファイルへの書き込み中に、ファイルを分離する必要があることを示すために使用されるパターンを探して、入力ストリームから読み取ります。
シナリオに価値を追加する場合は、入力ファイルと出力ファイルBinaryReader
をそれぞれ と でラップすることを検討することをお勧めします。BinaryWriter
MemoryStreamは基本的に、ストリームインターフェイスを備えたバイト配列です。たとえば、シーケンシャルな読み取り/書き込みや現在の位置の概念などです。