Empty array with BinaryReader on UploadedFile in c#

3k views Asked by At

Assume the following code:

Stream file = files[0].InputStream;

var FileLen = files[0].ContentLength;

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

If I upload a CSV file that is 10 records ( 257 bytes ), the BinaryReader fills the array of bytes with "0".

I also wrote a loop to step through the ReadByte Method of the BinaryReader and in the first iteration of the loop, I received the following exception:

Unable to read beyond the end of the stream

When I increase the CSV file to 200 hundred records, everything worked just fine.

The question is then, Why does this happen on smaller files, and is there a workaround that allows the Binary read of smaller files.

1

There are 1 answers

0
Paul Shriner On BEST ANSWER

Not sure why, but when you are using BinaryReader on an uploaded stream, the start position needs to be explicitly set.

b.BaseStream.Position = 0;