我想使用两个不同的编写器来处理一种“混合格式”文件(这个问题与我之前关于如何编写这种文件的问题有关:使用两个“using”语句和两个编写器写入同一个文件)
我的问题是,当我打开一个文件然后创建一个StreamReader
来读取它时,我在该文件上创建的每个其他读取器都会得到一个空流并且无法读取任何内容。
最小示例如下。假设我们有一个文件包含两行,第一句是“saying” first line
,第二句是“saying” second line
。
然后,写入以下内容:
using (FileStream file = new(fileName, FileMode.Open, FileAccess.Read))
{
List<string> strings = new();
using (StreamReader reader = new StreamReader(file, leaveOpen: true))
{
strings.Add(reader.ReadLine());
}
using (StreamReader reader = new StreamReader(file, leaveOpen: true))
{
strings.Add(reader.ReadLine());
}
}
我希望列表strings
包含元素"first line"
和"second line"
。相反,当我运行代码时,我得到了第一个元素"first line"
,但的第二个元素strings
是null
。我显然不明白这里的某些东西,但我不知道是什么。