Как пропускать байты в потоке

Как наиболее эффективно пропустить некоторое количество байтов в любомStream?

Если возможно, я хотел бы получить или броситьEndOfStreamExceptionпри попытке пропустить конец потока.


Я пишу пользовательский поток Readerдля примитивных типов данных ISO 9660, и это может потребовать большого количества пропусков в потоках с возможностью поиска и без -с возможностью поиска, как с небольшими числами (4 ), так и с большими числами (. 2048 )байт. Поэтому я хочу реализовать метод Skip(int count), который немного более эффективен, чем чтение и отбрасывание пропущенных байтов.

Например, в потоке с возможностью поиска я мог бы сделать stream.Position += 4, но это не выдает EndOfStreamExceptionпри поиске после конца потока, и я не знаю, как проверить это без читая что-то. Для потоков без -поиска установка Positionдаже не вариант, но чтение и последующее отбрасывание большого количества байтов и выделение неиспользуемых массивов байтов кажется очень расточительным.

7
задан Daniel A.A. Pelsmaeker 6 August 2012 в 20:59
поделиться