Я работаю над улучшением класса чтения потоков, который использует BinaryReader
.Он состоит из цикла while, который использует .PeekChar()
для проверки, существует ли больше данных для продолжения обработки.
Самая первая операция - это .ReadInt32()
, которая читает 4 байта.Что если PeekChar
только «видел» один байт (или один бит)?Это не похоже на надежный способ проверки EOF.
BinaryReader
построен с использованием параметров по умолчанию, который, как я понимаю, использует UTF8 в качестве кодировки по умолчанию.Я предполагаю, что .PeekChar()
проверяет 8 бит, но я действительно не уверен.
Сколько бит ищет .PeekChar()
?(и какие существуют альтернативные методы проверки EOF?)