我需要从头到尾读取两次流。
但是下面的代码会抛出ObjectDisposedException: Cannot access a closed file
异常。
string fileToReadPath = @"<path here>";
using (FileStream fs = new FileStream(fileToReadPath, FileMode.Open))
{
using (StreamReader reader = new StreamReader(fs))
{
string text = reader.ReadToEnd();
Console.WriteLine(text);
}
fs.Seek(0, SeekOrigin.Begin); // ObjectDisposedException thrown.
using (StreamReader reader = new StreamReader(fs))
{
string text = reader.ReadToEnd();
Console.WriteLine(text);
}
}
为什么会这样?真正处置的是什么?为什么操作StreamReader
会以这种方式影响关联的流?期望一个可搜索的流可以被多次读取,包括几个StreamReader
s,这难道不是合乎逻辑的吗?