从下到上阅读文本文件是正确的方法吗?

时间:2012-11-30 08:45:24

标签: c#

  

可能重复:
  How to read a text file reversely with iterator in C#

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

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

1 个答案:

答案 0 :(得分:0)

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

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

另一种方法是从文件中读取字节块,找到字节中的换行符,并将它们之间的字节解码为字符串。