如果我写下面的陈述。
fileStream.Close();
reader.Close();
writer.Close();
reader.Close()语句成功执行。但是我收到错误“无法打开已关闭的文件”。在第三个声明writer.Close()
如果我写
fileStream.Close();
writer.Close();
reader.Close();
第二个语句,即writer.Close()本身抛出相同的异常。
有人有想法吗?
答案 0 :(得分:4)
我认为这是因为在关闭底层流之前,writer会调用flush()。
答案 1 :(得分:2)
我将不得不猜测你的代码与do:
类似FileStream fileStream = new FileStream(...);
StreamWriter writer = new StreamWriter(fileStream);
...
不要关闭fileStream,流编写器现在“拥有”流。关闭它也会关闭文件流。