使C#流的当前点成为开头

时间:2014-07-15 08:30:15

标签: c# stream

我必须读取C#流的一些字节,然后将流传递给库方法,该方法应该读取其余部分。不幸的是,这个方法调用了一个stream.Seek(0,SeekOrigin.Begin)。因此,它将读取它无法理解的第一个字节。

我可以将流的开头重置为当前位置吗?我不想将整个流的其余部分复制到MemoryStream中,因为它可能非常大。

1 个答案:

答案 0 :(得分:8)

不,没有什么可以做到的......但你可以做的是创建你自己的包装器流,它维护对原始流的引用,并委托对它的所有调用...适当修改任何Seek()Position个来电。为了简单起见,您可能会发现为了您的目的,您可以进行一些更深奥的调用(例如异步支持),只需抛出NotImplementedException