为什么StreamWriter不能访问已关闭的流,而StreamReader可以
本文关键字:StreamReader 可以 不能 StreamWriter 访问 为什么 | 更新日期: 2023-09-27 18:01:34
如果我写以下语句:
fileStream.Close();
reader.Close();
writer.Close();
reader.Close()语句执行成功。但是在第三条语句writer.Close()
上得到错误" cannot open closed file."如果我写
fileStream.Close();
writer.Close();
reader.Close();
第二条语句即writer.Close()本身抛出同样的异常。
有人知道吗?
我认为这是因为writer在关闭底层流之前调用了flush()。
我不得不猜测你的代码看起来像这样:
FileStream fileStream = new FileStream(...);
StreamWriter writer = new StreamWriter(fileStream);
...
不要关闭fileStream,流写入器现在"拥有"这个流。关闭它也会关闭文件流。