如何最有效地跳过任何
Stream
中的一些字节数?
如果可能的话,我想在尝试跳过流的末尾时获取或抛出EndOfStreamException
.
我正在为ISO 9660原始数据类型编写自定义流阅读器,这可能涉及大量跳过可搜索和不可搜索的流,包括小数(4)和大数(2048)字节.因此,我想实现一个比读取和丢弃跳过的字节更有效的Skip(int count)方法.
例如,在seekable流中,我可能会执行stream.Position = 4,但是在搜索流结束时不会抛出EndOfStreamException,并且我不知道如何在不读取内容的情况下测试它.对于不可搜索的流,设置Position甚至不是一个选项,但是读取并随后丢弃大量字节并分配未使用的字节数组似乎非常浪费.