Как переместить курсор на 1 чтение с помощью FileStream? - PullRequest
0 голосов
/ 27 мая 2020

Я читаю байт за байтом в FileStream. Я использую ReadByte.

Мне всегда нужно проверять следующий байт. Я хотел бы иметь возможность, если я прочитаю определенный байт, go назад на один байт.

Причина в том, что, когда я встречаю этот байт, мне нужно передать FileStream другой функции, но ему нужно прочитать его в этой конкретной c предыдущей позиции (назад на один байт).

Как я могу этого добиться?

Действительно, я искал https://www.bing.com/search?q=c%23+change+position+to+previous+stream+site%3astackoverflow.com но на все вопросы предлагаю использовать Seek(offset, Beginning). Какой-то пользователь предложил дублировать , который показывает, как использовать .Seek(0, SeekOrigin.Begin); - это определенно то, что я хочу. Мне нужно найти текущую позицию (для которой я обнаружил правдоподобный метод поиска «C# позиция в файловом потоке» - FileStream.Position ), уменьшенная на единицу.

1 Ответ

1 голос
/ 27 мая 2020

Существует метод Seek для установки потока в заданную позицию. Вы можете получить текущую позицию потока с помощью свойства Position .

Тогда должно получиться что-то вроде этого:

fileStream.Seek(filestream.Position - 1, SeekOrigin.Begin);
...