Учебники

Java 9 — Попробуйте с улучшением ресурсов

Оператор try-with-resources является оператором try с одним или несколькими ресурсами, должным образом объявленными. Здесь ресурс — это объект, который должен быть закрыт, если он больше не требуется. Оператор try-with-resources обеспечивает закрытие каждого ресурса после завершения требования. Любой объект, реализующий интерфейс java.lang.AutoCloseable или java.io.Closeable, может быть использован в качестве ресурса.

До Java 9 ресурсы должны быть объявлены перед оператором try или внутри оператора try, как показано ниже в данном примере. В этом примере мы будем использовать BufferedReader в качестве ресурса для чтения строки, а затем BufferedReader должен быть закрыт.

Tester.java

Live Demo

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;

public class Tester {
   public static void main(String[] args) throws IOException {
      System.out.println(readData("test"));
   } 
   static String readData(String message) throws IOException {
      Reader inputString = new StringReader(message);
      BufferedReader br = new BufferedReader(inputString);
      try (BufferedReader br1 = br) {
         return br1.readLine();
      }
   }
}

Выход

test

Здесь нам нужно объявить ресурс br1 в try statment и затем использовать его. В Java9 нам больше не нужно объявлять br1, и следующая программа даст тот же результат.