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