Закрываются ли потоки автоматически по ошибке?

Привет всем, я понимаю, что если мы читаем байты из InputStream и мы закончили чтение всех байтов (или мы не намерены читать до конца потока), мы должны вызвать close(), чтобы освободить системные ресурсы, связанные с потоком.

Теперь мне было интересно, если я read байты, и он выдает java.io.IOException, должен ли я по-прежнему вызывать close() для освобождения системных ресурсов, связанных с потоком?

Или это правда, что при ошибках потоки закрываются автоматически, поэтому нам не нужно вызывать close() ?

5
задан Pacerier 20 January 2012 в 13:59
поделиться