Нужно ли закрывать InputStream в Java?
Мой код:
InputStream confFile=classLoader.getResourceAsStream("myconffile.properties");
В документах:
Метод close метода InputStream ничего не делает.
Означает ли это, что мне не нужно закрывать InputStream?
Ответы
Ответ 1
Вам нужно закрыть входной поток, потому что поток, возвращаемый указанным вами методом, фактически FileInputStream или какой-либо другой подкласс InputStream
, который содержит дескриптор файла. Если вы не закрываете этот поток, у вас есть утечка ресурсов.
Ответ 2
Нет, это не значит, потому что InputStream
является абстрактным классом, а getResourceAsStream()
возвращает конкретный подкласс, метод close()
делает что-то - самое главное, свободный дескриптор файла.