嘿!我正在尝试使用文件流读取 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);
}
Edit:
我尝试阅读所有文本,但它仍然返回相同的四个字符。除了这几个文件之外,它在任何其他文件上都可以正常工作。当我使用读取所有行时,它只获取第一行。
fs.Read()
不会一次读取全部字节,它会读取一定数量的字节并返回读取的字节数。 MSDN 有一个很好的示例说明如何使用它来获取整个文件:
http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspx http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspx
无论如何,将整个 150MB 的数据读入内存确实会消耗客户端的系统 —— 首选的选择是对其进行优化,这样您就不需要一次性读取整个文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)