try-with-resourcesЗаявление.
try-with-resources statementЯвляется tryутверждение , что говорит один или несколько ресурсов. A resource- это объект, который необходимо закрыть после того, как программа завершит работу с ним. try-with-resources statementГарантирует , что каждый ресурс закрыт в конце заявления. Любой реализующий объект java.lang.AutoCloseable, который включает в себя все реализующие объекты java.io.Closeable, может использоваться как ресурс.
В следующем примере считывается первая строка из файла. Он использует экземпляр BufferedReaderдля чтения данных из файла. BufferedReader- это ресурс, который необходимо закрыть после того, как программа завершит работу с ним:
static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br =
new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
В этом примере ресурс, объявленный в инструкции try-with-resources, является BufferedReader. Оператор объявления появляется в круглых скобках сразу после ключевого слова try. Класс BufferedReaderв Java SE 7 и новее реализует интерфейс java.lang.AutoCloseable. Поскольку BufferedReaderэкземпляр объявлен в операторе try-with-resource, он будет закрыт независимо от того, завершается ли оператор try нормально или внезапно (в результате того, что метод BufferedReader.readLineвыбрасывает IOException).
До Java SE 7 можно было использовать finallyблок, чтобы гарантировать, что ресурс закрыт, независимо от того, завершается ли оператор try нормально или внезапно. В следующем примере finallyвместо try-with-resourcesоператора используется блок :
static String readFirstLineFromFileWithFinallyBlock(String path)
throws IOException {
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
if (br != null) br.close();
}
}
Пожалуйста , обратитесь к документации .