Многие ответы здесь описывают опасные методы, в которых они создают поток ввода файла, но не получают ссылку на поток ввода, чтобы позже закрыть поток.Это приводит к зависанию входных потоков и утечкам памяти.Правильный способ загрузки свойств должен быть следующим:
Properties prop = new Properties();
try(InputStream fis = new FileInputStream("myProp.properties")) {
prop.load(fis);
}
catch(Exception e) {
System.out.println("Unable to find the specified properties file");
e.printStackTrace();
return;
}
Обратите внимание на создание экземпляра потока ввода файла в блоке try-with-resources
.Так как FileInputStream
является автозаполняемым, он будет автоматически закрыт после выхода из блока try-with-resources
.Если вы хотите использовать простой блок try
, вы должны явно закрыть его, используя fis.close();
в блоке finally
.