C# 读取大文件的方法有很多,在这里我使用的是File.ReadAllBytes(fileName)一次读出来,再用MemoryStream放在内存,再用StreamReader一行行的读出来,速度也挺快的,16M的文本大概也就8秒左右,算起来差不多算快了。不过还是不能满足大文件(毕竟内存空间有限)。
//
using System.IO;
// using System.Text;
// 放入内存流,以便逐行读取
MemoryStream ms = new MemoryStream(File.ReadAllBytes(fileName));
using (StreamReader sr = new StreamReader(ms, Encoding.GetEncoding( " GB2312 ")))
{
try
{
while (sr.Peek() > - 1)
{
string info = sr.ReadLine();
// do something
}
}
catch (Exception ex) { sr.Close(); throw ex; }
}
ms = null;
// using System.Text;
// 放入内存流,以便逐行读取
MemoryStream ms = new MemoryStream(File.ReadAllBytes(fileName));
using (StreamReader sr = new StreamReader(ms, Encoding.GetEncoding( " GB2312 ")))
{
try
{
while (sr.Peek() > - 1)
{
string info = sr.ReadLine();
// do something
}
}
catch (Exception ex) { sr.Close(); throw ex; }
}
ms = null;
参考:http://www.cnblogs.com/criedshy/archive/2010/06/13/1757826.html