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

posted on 2011-09-13 17:37  凡夫·俗子  阅读(2198)  评论(0编辑  收藏  举报