1

私はそれで生のバッファを持っています。他に3つ、常に最初の8バイトであるヘッド、常にバイト8から?までのボディを作成する必要があります。では、どちらの足からですか?ファイルの最後まで。

体と足を埋めることができるように、既存のバッファーからバッファーを作成するにはどうすればよいですか。また、最初の 16 バイトを使用するように head を作成するにはどうすればよいですか。私は参照またはポインターを使用していないと仮定しています。

4

3 に答える 3

2

Array.Copy() を使用して、ある配列から別の配列に要素をコピーできます。ソースと宛先の開始位置と終了位置を指定できます。

Buffer.BlockCopy()も確認してください。

于 2009-07-08T03:58:42.323 に答える
1

MemoryStreamからBinaryReaderを使用できます

 System.IO.MemoryStream stm = new System.IO.MemoryStream( buf, 0, buf.Length );
 System.IO.BinaryReader rdr = new System.IO.BinaryReader( stm );

 int bodyLen = xxx;
 byte[] head = rdr.ReadBytes(8)
 byte[] body = rdr.ReadBytes(bodyLen );
 byte[] foot = rdr.ReadBytes(buf.Length-bodylen-8);
于 2009-07-08T04:38:28.607 に答える
0

Buffer.BlockCopyを使用してみてください。これにより、配列操作と比較してプリミティブ型のパフォーマンスが向上します。(なぜですか?わかりませんが、MSDNはそう言っています)

于 2009-07-08T04:01:06.843 に答える