Мы все знаем, что хорошая привычка закрыть все средства StreamReaders, которые мы определили в конце кода.Нужно ли закрывать InputStreamReader в BufferedReader
Теперь мы можем видеть, что два читателя были определены ниже. BufferedReader и InputStreamReader. BufferedReader был закрыт, но мы не можем закрыть InputStreamReader.
код JAVA:
BufferedReader in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
if (in != null) {
in.close();
}
Проблема здесь, если InputStreamReader в скобках должны быть закрыты? Будет ли такой код вызывать проблемы в программе? Пожалуйста, скажите мне, спасибо ~
http://www.vineetmanohar.com/2011/03/java-7-try-with-auto-closable-resources/ – Alon
Если вы посмотрите на [JavaDocs для 'BufferedReader # close'] (http : //docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#close()), вы увидите, что он говорит: «Закрывает поток и освобождает связанные с ним системные ресурсы. поток закрыт, вызовы read(), ready(), mark(), reset() или skip() будут генерировать исключение IOEx. Закрытие ранее закрытого потока не имеет эффекта. "*, что в основном означает, что вызов 'close' на' BufferedReader' закроет любые связанные (дочерние) потоки – MadProgrammer
Этот вопрос обсуждается на [meta] (http://meta.stackoverflow.com/questions/319744/why-was-this-question-deleted) , –