ストリームを最初から最後まで2回読み取る必要があります。
ただし、次のコードは例外をスローし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
か?