Почему StreamWriter не может получить доступ к закрытому потоку, а StreamReader может? - PullRequest
0 голосов
/ 09 июля 2011

Если я напишу следующие утверждения.

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

reader.Close () оператор успешно выполняется. Но я получаю ошибку «Не могу открыть закрытый файл». на 3-м заявлении писатель. Закрыть ()

Если я напишу

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

2-й оператор, т.е. сам writer.Close () вызывает то же исключение.

У кого-нибудь есть идеи?

Ответы [ 2 ]

4 голосов
/ 09 июля 2011

Я думаю, это потому, что писатель вызывает flush () перед закрытием основного потока.

2 голосов
/ 09 июля 2011

Мне нужно догадаться, что ваш код выглядит примерно так:

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

Не закрывайте fileStream, потоковый писатель теперь «владеет» потоком.Закрытие также закрывает поток файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...