& # 39; System.OutOfMemoryException& # 39;使用ReadAllText()方法时
本文关键字:方法 OutOfMemoryException System 使用 ReadAllText | 更新日期: 2023-09-27 18:06:31
我有一个以制表符分隔的文件,有8,000,000+行,其中有一些流氓制表符。
例如:a->b->c->d
a->b->c->-->-->--d
a->b->c->d
a->b->c->d
我有一个方法来纠正流氓标签(3个标签到1个标签),如下所示:
string text = File.ReadAllText(filePath);
text = text.Replace("'t't't", "'t");
File.WriteAllText(filePath, text);
上面的代码块产生以下错误:
类型为"System"的未处理异常。OutOfMemoryException的发生在mscorlib.dll
我怎么能一次只读和写一行,使整个文件不在内存中?
File.ReadLines
给你一个懒惰的IEnumerable<string>
。你可以对它进行迭代,每次只加载一行。
File.WriteAllLines(outputFile,
File.ReadLines(inputFile).
Select(t => t.Replace("'t't't", "'t"))
);