static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br =
new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。
try()中的资源必须是实现了java.lang.AutoCloseable或java.io.Closeable的类。try语句块中可以声明一个或多个resources,
不管try语句是正常完成还是抛异常,资源在执行完try语句块都会关闭。try-with-resources语句包含多个资源的时候,资源的close方法的调用顺序与它们的创建顺序相反。注意:带有资源的try语句可以像一般的try语句一样具有catch和finally块。在try-with-resources语句中,任何catch或finally块都是在声明的资源被关闭后才会执行的。
详细例子可参见:https://blog.csdn.net/wzbwzh/article/details/82259686