Пустой массив с BinaryReader для UploadedFile в c # - PullRequest
4 голосов
/ 03 февраля 2011

Предположим, следующий код:

Stream file = files[0].InputStream;

var FileLen = files[0].ContentLength;

var b = new BinaryReader(file);
var bytes = b.ReadBytes(FileLen);

Если я загружаю CSV-файл, содержащий 10 записей (257 байт), BinaryReader заполняет массив байтов значением «0».

Я также написал цикл для пошагового выполнения метода ReadByte в BinaryReader, и на первой итерации цикла я получил следующее исключение:

Невозможно прочитать за конец потока

Когда я увеличиваю файл CSV до 200 сотен записей, все работает просто отлично.

Тогда возникает вопрос: почему это происходит с небольшими файлами, и существует ли обходной путь, позволяющий двоичномучитать файлы меньшего размера.

1 Ответ

13 голосов
/ 08 февраля 2011

Не знаю почему, но когда вы используете BinaryReader в загруженном потоке, начальная позиция должна быть явно задана.

...