Читать многие из StreamReader

У меня небольшая проблема. Мой код в визуальной студии:

file = new StreamReader("D:\\BaseList.txt");
string line;
while ((line = file.ReadLine()) != null)
{
    listBox1.Items.Add(line);
}
file.Close(); // 1
file = new StreamReader("D:\\Baza3.txt");  //2

Я прочитал все строки в файле и хотел бы еще раз прочитать с самого начала. Должен ли я закрыть поток и перезагрузить файл в поток (строки с номерами 1 и 2)? Есть ли метод, который позволяет установить поток в начале моего файла без использования этой пронумерованной строки?


person garm    schedule 20.03.2016    source источник
comment
Почему вы хотите прочитать файл несколько раз вместо того, чтобы просто сохранить результат в памяти и ссылаться на него там? Ожидаете ли вы, что содержимое файла изменится?   -  person sara    schedule 20.03.2016


Ответы (2)


Вы можете сбросить положение базового потока, как это

streamReader.BaseStream.Position = 0;

Вы можете сделать это, только если базовый поток доступен для поиска. (myStream.CanSeek == true). Это верно в вашем случае, когда вы создаете новый StreamReader со строкой пути.

person Kalten    schedule 20.03.2016

Попробуйте установить BaseStream Position на 0 или скопировать содержимое в MemoryStream перед тем, как начать его читать.

Ознакомьтесь с этой темой: Вернуть StreamReader в начало

person benyogyerek    schedule 20.03.2016