Как начать читать текстовый файл сначала после прочтения?
Как начать читать текстовый файл заново после прочтения до конца Readline()-ом?
using (var reader = new StreamReader(path, Encoding.Default))
{
newline = reader.ReadLine();}
Ответы (1 шт):
Автор решения: Alex Krass
→ Ссылка
Нужно сбросить в самой обертки StreamReader буфер через reader.DiscardBufferedData(); и дополнительно установить у потока значение текущей позиции в ноль. Добраться до потока и сбросить его можно через reader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);.
reader.DiscardBufferedData();
reader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);
Полный пример:
using System;
using System.IO;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
using (var reader = new StreamReader(@"C:\testfile.txt", Encoding.Default))
{
string newline = "";
while (newline != null)
{
newline = reader.ReadLine();
Console.WriteLine(newline);
}
//Сброс
reader.DiscardBufferedData();
reader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);
newline = "";
while (newline != null)
{
newline = reader.ReadLine();
Console.WriteLine(newline);
}
}
Console.ReadLine();
}
}
}