在C#中的UploadedFile上使用BinaryReader的空数组

Pau*_*ner 5 c# binaryreader

假设以下代码:

Stream file = files[0].InputStream;

var FileLen = files[0].ContentLength;

var b = new BinaryReader(file);
var bytes = b.ReadBytes(FileLen);
Run Code Online (Sandbox Code Playgroud)

如果我上传一个10个记录(257字节)的CSV文件,BinaryReader将用"0"填充字节数组.

我还写了一个循环来逐步执行BinaryReader的ReadByte方法,在循环的第一次迭代中,我收到了以下异常:

无法读取超出流的末尾

当我将CSV文件增加到200个记录时,一切正常.

问题是,为什么这会发生在较小的文件上,并且有一种解决方法允许二进制读取较小的文件.

Pau*_*ner 14

不确定原因,但是当您在上传的流上使用BinaryReader时,需要明确设置起始位置.

b.BaseStream.Position = 0;
Run Code Online (Sandbox Code Playgroud)

  • WHYYYYYYYYYYYYYYYY?!?!?!?!?!?!?!?!?!?!?! (5认同)
  • WWWWWWWWWHYYYYYYYYYYYYYYYY?!?!?!?!?!?!?!?!?!?!?! (3认同)
  • wwwwwHHHHHYYYYYYYY?!?!?!?!?!?!?!?!?!?!?! (2认同)