我有一个原始缓冲区,我需要制作另外 3 个缓冲区,头部始终是前 8 个字节,主体始终是从字节 8 到 ? 那么脚是从哪来的?到他文件的末尾。
我如何从已经存在的缓冲区中创建一个缓冲区,以便我可以填充身体和脚部。还有我如何创建头来使用前 16 个字节。我假设我没有使用 ref 或指针。
您可以使用 Array.Copy() 将元素从一个数组复制到另一个数组。您可以指定源和目标的开始和结束位置。
您可能还想查看Buffer.BlockCopy()。
您可以使用 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);
尝试使用Buffer.BlockCopy,与 Array 操作相比,它应该为原始类型提供更快的性能。(为什么?我不知道,但 MSDN是这么说的)