我有一个由32个字节组成的字节数组。我想从索引位置16到19读取4个字节。我如何指向二进制读取器以从索引16开始读取。我正在尝试这些命令
byte[] trace ; // 32 byte array
using (FileStream s = File.OpenRead(filename))
using (BinaryReader r = new BinaryReader(s))
{
r.baseStream.Seek(position,SeekOrigin.Begin);
byte[] by = r.ReadBytes(4);
}
但我不知道该摆什么位置?
我想我明白了(尽管您在问题中的样本不是很清楚)。
您具有其中trace
包含32个元素的字节数组,并且想要读取从位置16开始的4个字节。
假设endianness不是变量,则可以使用它读取4个字节作为int值或字节数组:
using(var memStream = new MemoryStream(trace))
{
//position the stream
using(var reader = new BinaryReader(memStream)
{
memStream.Seek(16, SeekOrigin.Begin);
var intValue = reader.ReadInt32();
memStream.Seek(16, SeekOrigin.Begin);
//now read a byte array
var byteArray = reader.ReadBytes(4);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句