c# - 将 StreamReader 返回到开头

标签 c# .net

我正在逐行读取文件,我希望能够通过调用方法 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/

相关文章:

c# - 系统地替换命名空间

c# - 从月份数组中获取一系列值

c# - 在Linux中使用Visual Studio C#程序

c# - .NET 正则表达式模式?

c# - 如何在 Linq 中执行左外连接

c# - 变量用动态值初始化一次

c# - Unity SDK 中的 FB.API 不发布分数

c# - 绑定(bind)到 Canvas

C# 事件 : how variables are accessed

c# - 报告哈希进度