У меня есть звук на языке программирования Java. Но одна вещь, которая всегда была в моем сознании, состоит в том, почему это необходимо для close()
java.io.InputStream
или его подклассов?
Теперь, когда java.io.OutputStream
, скажем FileOutputStream
, после записи в файл, если мы не close()
поток вывода, данные, которые мы намеревались записать в файле, остаются в буфере и не записываются к файлу.
Таким образом, становится необходимым close()
a OutputStream
. Но у меня никогда не было каких-либо горьких переживаний после не закрытия a InputStream
.
Но все же все статьи в Интернете и в книгах говорят, что всегда полезно закрыть любой поток, возможно, это InputStream
или OutputStream
.
Итак, мой вопрос в том, почему возникает необходимость close()
a InputStream
? Люди говорят, что вы можете столкнуться с утечкой памяти, вы не close()
. Итак, какова утечка памяти?