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

转载于:https://www.cnblogs.com/linyechengwei/archive/2011/09/13/2174946.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值