|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行时,它只获得第一行。
答案 0 :(得分:8)
fs.Read()
不会同时读取整个字节数,它读取一些字节数并返回读取的字节数。 MSDN有一个很好的例子,说明如何使用它来获取整个文件:
http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspx
对于它的价值,将整个150MB的数据读入内存实际上会耗尽您客户的系统 - 首选的选择是优化它,这样您就不需要一次性处理整个文件
答案 1 :(得分:2)
如果你想以这种方式阅读文本File.ReadAllLine(或ReadAllText) - http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx是更好的选择。
我猜这个文件不是文本文件,显示结果字符串的方式是0字符。
正如debracey所指出的,Read返回读取的字节数 - 检查出来。同样对于文件操作,它不可能停留在4个字符......