我正在逐行读取一个文件,我希望能够通过调用方法Rewind()
重新开始读取.
我如何操纵我的System.IO.StreamReader
和/或其基础System.IO.FileStream
来重新开始读取文件?
我想出了一个聪明的主意,用FileStream.Seek(long, SeekOffset)
在文件中移动,但它对封闭的System.IO.StreamReader
没有影响.我可以重新分配流和读者引用,但我希望有更好的方法.
我正在逐行读取一个文件,我希望能够通过调用方法Rewind()
重新开始读取.
我如何操纵我的System.IO.StreamReader
和/或其基础System.IO.FileStream
来重新开始读取文件?
我想出了一个聪明的主意,用FileStream.Seek(long, SeekOffset)
在文件中移动,但它对封闭的System.IO.StreamReader
没有影响.我可以重新分配流和读者引用,但我希望有更好的方法.
你需要像以前一样在流中搜索,然后在StreamReader
上拨打DiscardBufferedData
.文件here:
编辑:添加代码示例:
Stream s = new MemoryStream();
StreamReader sr = new StreamReader(s);
// later... after we read stuff
s.Position = 0;
sr.DiscardBufferedData(); // reader now reading from position 0