Как определить конец потока BinaryReader - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. stRead = new FileStream(somePath, FileMode.Open, FileAccess.Read);
  2. br = new BinaryReader(stRead);
  3. stWrite = new FileStream(newFile, FileMode.OpenOrCreate, FileAccess.Write);
  4. bw = new BinaryWriter(stWrite);
  5. ...
  6. while (br.PeekChar() > -1) //здесь выдаёт фатальную ошибку
  7. bw.Write(br.ReadByte());
  8. ...
задача проста: просто копировать информацию из одного файла в другой. Ошибку я отметил в коде. я так понимаю, что, когда в потоке для чтения остаётся один байт, br.PeekChar() хочет взять из потока 2 байта(размер char), но не может и выдаёт ошибку. но это чисто моё мнение. я не уверен. Как можно по другому определять конец файла? P.S. вот текст ошибки: "Буфер выходных символов не достаточен для хранения закодированных символов, кодирование 'Unicode (UTF-8)' резерв 'System.Text.DecoderReplacementFallback'. Имя параметра: chars"

Решение задачи: «Как определить конец потока BinaryReader»

textual
Листинг программы
  1. stRead.CopyTo(stWrite);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы