1 GB のテキスト ファイルがあり、それを読みたいとします。このファイルを開こうとすると、「メモリ オーバーフロー」エラーが発生します。私が知っている、通常の答えは「StreamReader.ReadLine() メソッドを使用する」です。しかし、私はこれがどのように機能するのか疑問に思っています。ReadLine メソッドを使用するプログラムが行を取得したい場合、遅かれ早かれテキスト ファイル全体を開く必要があります。私の知る限り、ファイルはディスクに保存され、「オールオアナッシング」の原則でメモリ内で開くことができます。ReadLine() メソッドを使用して、1 GB のテキスト ファイルの 1 行のみを一度にメモリに格納する場合、1 GB のテキスト ファイルの読み取り中に、1 GB のテキスト ファイルのすべての行に対してディスク IO を実行する必要があります。これはパフォーマンスのために行うにはひどいことではありませんか?
私はとても混乱していて、これについていくつかの詳細が欲しいです.