C# 用内存映射文件读取大日志文件(.log)

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;

参考:http://www.cnblogs.com/criedshy/archive/2010/06/13/1757826.html

你可能感兴趣的:(文件读取)