任意のバイト数を最も効率的にスキップする方法はStream
?
EndOfStreamException
可能であれば、ストリームの終わりをスキップしようとするときに、を取得またはスローしたいと思います。
私はReader
ISO9660プリミティブデータ型のカスタムストリームを作成していますが、これには、小さい数(4)と大きい数(2048)のバイトの両方で、シーク可能なストリームとシーク不可能なストリームで多くのスキップが含まれる場合があります。Skip(int count)
したがって、スキップされたバイトを読み取って破棄するよりも少し効率的な方法を実装したいと思います。
たとえば、シーク可能なストリームではそうするかもしれませんが、ストリームの終わりを超えてシークstream.Position += 4
するときにこれはスローされませんEndOfStreamException
。また、何かを読まずにそれをテストする方法がわかりません。シークできないストリームの場合、設定Position
はオプションではありませんが、大量のバイトを読み取ってから破棄し、未使用のバイト配列を割り当てることは非常に無駄に思えます。