由于 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
}