如何指向BinaryStream的特定索引
本文关键字:索引 BinaryStream 何指 | 更新日期: 2023-09-27 18:16:00
我有一个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不是一个变量,您可以使用它来读取作为int值或字节数组的4字节:
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);
}
}