Чтобы добавить к ответу @SLaks, здесь будет продемонстрировано (с использованием файла с парой тысяч строк текста):
Stream s = File.OpenRead(path);
StreamReader sr = new StreamReader(s, Encoding.ASCII);
Console.WriteLine(sr.ReadLine());
s.Dispose();
int i = 1;
try
{
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
i++;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine(i + " lines total");
Console.ReadLine();
Он выведет множество строк, как пара сотен,тогда скинет исключение.Мой вывод закончился так:
qrs
tuv
wxy
zab
cde
fgh
ijk
lmn
Cannot access a closed file.
204 lines total
На самом деле мы видим, что существует конструктор для StreamReader
, который принимает параметр bufferSize
в качестве четвертого параметра:
StreamReader sr = new StreamReader(s, Encoding.ASCII, false, 10000);
Использование10000, он на самом деле выводит мне 1248 строк перед тем, как рухнуть.Кроме того, наименьшее возможное значение, которое вы можете использовать, равно 1, и для этого случая оно по-прежнему предварительно выбирает 25 строк.