假设我有一个 1 GB 的文本文件,我想阅读它。如果我尝试打开此文件,我会收到“内存溢出”错误。我知道,通常的答案是“使用 StreamReader.ReadLine() 方法”。但我想知道这是如何工作的。如果使用 ReadLine 方法的程序想要获取一行,它迟早要打开整个文本文件。据我所知,文件存储在磁盘上,可以按照“全有或全无”的原则在内存中打开它们。如果使用 ReadLine() 方法一次只将我的 1 GB 文本文件的一行存储在内存中,这意味着我们必须在读取 1 GB 文本文件的每一行时为它进行磁盘 IO。这对性能来说不是一件可怕的事情吗?
我很困惑,我想要一些关于这个的细节。