我需要阅读并处理文本文件。如果我可以使用File.ReadAllLines方法,我的处理会更容易,但我不确定使用此方法可以读取的文件的最大大小是多少,而不是通过块读取。 据我所知,文件大小取决于计算机内存。但是对于普通机器还有什么建议吗? 我非常感谢您的快速反应。 谢谢, 列夫
答案 0 :(得分:1)
在32位操作系统上,你最多可以获得大约550兆字节的连续内存块,允许加载一半大小的文件。在程序运行一段时间之后,这会迅速下降并且虚拟内存地址空间变得支离破碎。 100兆欧是你所能想到的。
这不是64位操作系统的问题。
由于一次读取一行文本与读取所有行一样快,因此这绝不是一个真正的问题。
答案 1 :(得分:0)
我之前用1-2GB做过这样的事情,虽然在Python中。不过,我认为.NET不会有问题。但我只会这样做一次性处理。
如果您定期执行此操作,则可能需要逐行浏览文件。
答案 2 :(得分:0)
它的设计很糟糕,除非你知道正在运行的应用程序中可用的文件大小与计算机内存。
更好的解决方案是memory mapped files。他们使用itselvses作为页面存储,