为什么StreamWriter无法访问封闭流但StreamReader可以?

时间:2011-07-09 19:24:22

标签: c# filestream streamreader streamwriter

如果我写下面的陈述。

fileStream.Close();
reader.Close();
writer.Close();

reader.Close()语句成功执行。但是我收到错误“无法打开已关闭的文件”。在第三个声明writer.Close()

如果我写

fileStream.Close();
writer.Close();
reader.Close();

第二个语句,即writer.Close()本身抛出相同的异常。

有人有想法吗?

2 个答案:

答案 0 :(得分:4)

我认为这是因为在关闭底层流之前,writer会调用flush()。

答案 1 :(得分:2)

我将不得不猜测你的代码与do:

类似
FileStream fileStream = new FileStream(...);
StreamWriter writer = new StreamWriter(fileStream);
...

不要关闭fileStream,流编写器现在“拥有”流。关闭它也会关闭文件流。