我需要通过以下代码行从底部到顶部读取超过 700万行的txt文件:我想知道是正确的方法还是我应该使用迭代器来执行此任务?在stackoverflow中使用迭代器的一些答案。
foreach (string line in File.ReadAllLines("read.txt").Reverse())
{
Console.WriteLine(line);
}
答案 0 :(得分:0)
由于文件不是基于行的,因此没有方便的方法从文件末尾读取行。只要整个文件适合内存,你正在做的工作就可以了。
如果遇到内存问题,可以用块读取文件,例如: File.ReadLines(path).Skip(6000000)
,然后是File.ReadLines(path).Skip(5000000).Take(1000000)
。这将每次读取到该点的文件,但它将使用更少的内存。
另一种方法是从文件中读取字节块,找到字节中的换行符,并将它们之间的字节解码为字符串。