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

时间:2011-02-03 07:57:06

标签: c# binaryreader

假设以下代码:

Stream file = files[0].InputStream;

var FileLen = files[0].ContentLength;

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

如果我上传一个10条记录(257字节)的CSV文件,BinaryReader会用“0”填充字节数组。

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

无法读取超出流的结尾

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

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

1 个答案:

答案 0 :(得分:12)

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

b.BaseStream.Position = 0;