Ну, смысл кажется достаточно ясным - и обходной путь просто не назвать ReadByte
.
Не читайте по одному байту за раз - читайте в буфер соответствующего размера (я обычно беру около 8 КБ, но все, что примерно такого порядка, должно быть в порядке), используя Read(byte[], int, int)
метод. Если после этого вам необходимо прочитать байты по отдельности, прочитайте их по одному из буфера.
Это становится проблемой, если вам нужно убедиться, что вы не читаете больше, чем предполагалось, если вы понимаете, что я имею в виду - например, если вы не собираетесь читать после первого 0 байт, потому что это означает, что это начало следующего «сообщения», и вы захотите прочитать его позже. В идеале, избегайте попадания в такую ситуацию.
Упаковка FileStream
в BufferedStream
может помочь в этом случае, но я бы тщательно измерил производительность, если это важно ... и все же попытался бы избежать конструкций, которые требуют чтения одного байта в то время, если вы можете помочь.