-3

可能重复:
如何在 C# 中使用迭代器反向读取文本文件

我需要通过以下代码行从下到上读取超过700 万行的 txt 文件:我想知道是正确的方法还是应该使用迭代器来完成这项任务?一些使用迭代器的答案已经在 stackoverflow 中。

        foreach (string line in File.ReadAllLines("read.txt").Reverse())
        {            
            Console.WriteLine(line);
        }
4

1 回答 1

0

由于文件不是基于行的,因此没有方便的方法从文件末尾读取行。只要整个文件适合内存,您所做的工作就可以正常工作。

如果遇到内存问题,可以分块读取文件,File.ReadLines(path).Skip(6000000)例如File.ReadLines(path).Skip(5000000).Take(1000000). 这将每次都读取该文件,但它会使用更少的内存。

另一种选择是从文件中读取字节块,定位字节中的换行符,并将它们之间的字节解码为字符串。

于 2012-11-30T09:03:45.217 回答