c# – 读取大TXT文件,内存不足异常

前端之家收集整理的这篇文章主要介绍了c# – 读取大TXT文件,内存不足异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想读大TXT文件大小是500 MB,
首先我用
var file = new StreamReader(_filePath).ReadToEnd();  
var lines = file.Split(new[] { '\n' });

但是它丢失了内存异常然后我试图逐行读取,但再次读取大约150万行后它抛出的内存异常

using (StreamReader r = new StreamReader(_filePath))
         {            
             while ((line = r.ReadLine()) != null)            
                 _lines.Add(line);            
         }

或者我用过

foreach (var l in File.ReadLines(_filePath))
            {
                _lines.Add(l);
            }

但我再次收到

An exception of type ‘System.OutOfMemoryException’ occurred in
mscorlib.dll but was not handled in user code

我的机器是功能强大的机器与8GB的RAM,所以它不应该是我的机器问题.

p.s:我试图在NotePadd中打开这个文件,我收到’该文件太大,无法打开’异常.

解决方法

只需使用 File.ReadLines,返回IEnumerable< string>并且不会立即将所有行加载到内存.
foreach (var line in File.ReadLines(_filePath))
{
    //Don't put "line" into a list or collection.
    //Just make your processing on it.
}
原文链接:https://www.f2er.com/csharp/94723.html

猜你在找的C#相关文章