由于BinaryReader底层的缓冲策略,我不确定在读取存储在流中的偏移量后,重新将流定位到该偏移量以恢复流是否可行。
例如,以下代码是否正确:
using (var reader = new CustomBinaryReader(inputStream))
{
var offset= reader.ReadInt32();
reader.BaseStream.Seek(offset, SeekOrigin.Begin);
//Then resume reading the streaming
}
在查找流之前,我应该关闭第一个二进制读取器,然后重新打开第二个读取器吗?
int offset;
using (var firstReader = new CustomBinaryReader(inputStream))
{
offset= firstReader.ReadInt32();
}
inputStream.Seek(offset, SeekOrigin.Begin);
using (var secondReader = new CustomBinaryReader(inputStream))
{
//Then resume reading the streaming
}