В настоящее время я использую такую конструкцию кода:
string line;
using (System.IO.StreamReader file = new System.IO.StreamReader("somelargefile.txt"))
{
while ((line = file.ReadLine()) != null)
// do something
}
Я использую это для чтения очень большого текстового файла. (Мне нужно оценивать построчно, а некоторые строки нужно сохранить в памяти). Мне кажется странным, что этот фрагмент кода не снижает производительности. Я предполагал, что каждый ReadLine
вызов будет приводить к доступу к диску, что делает мою программу чрезвычайно медленной для файлов размером в несколько сотен мегабайт. Но на самом деле это кажется довольно быстрым. Почему это?
Тогда нет никакой связи между ReadLine и доступом к физическому диску?