Filestream只读取文件的前4个字符

嘿! 我正在尝试用文件流读取一个150mb的文件,但每次我这样做都得到: |zl而不是整个流。 请注意,它中有一些特殊字符。

有人知道问题是什么吗? 这是我的代码:

 using (FileStream fs = File.OpenRead(path)) { byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); extract = Encoding.Default.GetString(buffer); } 

编辑:
我试着阅读所有文字,但它仍然返回相同的四个字符。 它可以在任何其他文件上正常工作,除了这几个。 当我使用read all行时,它只获得第一行。

fs.Read()不会同时读取整个字节的fs.Read() ,它会读取一定数量的字节并返回读取的字节数。 MSDN有一个很好的例子,说明如何使用它来获取整个文件:

http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspx

对于它的价值,将整个150MB的数据读入内存实际上会耗尽您客户的系统 – 首选的选择是优化它,这样您就不需要同时使用整个文件。

如果你想以这种方式读取文本File.ReadAllLine(或ReadAllText) – http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx是更好的选择。

我猜这个文件不是要开始的文本文件,显示结果字符串的方式确实停留在0个字符。

正如debracey所指出的,Read返回读取的字节数 – 检查出来。 同样对于文件操作,它不可能停在4个字符……