我正在逐行读取文件,我希望能够通过调用方法 Rewind()
重新开始读取。
如何操作我的 System.IO.StreamReader
和/或其底层 System.IO.FileStream
以重新开始读取文件?
我想到了使用 FileStream.Seek(long, SeekOffset)
在文件中移动的聪明主意,但它对封闭的 System.IO.StreamReader
没有任何影响.我可以Close()
并重新分配流和读取器 referecnes,但我希望有更好的方法。
最佳答案
您需要像以前一样在流中查找,然后在 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
关于c# - 将 StreamReader 返回到开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2053206/