当前位置: 代码迷 >> 综合 >> JDK7 新特性之try-with-resources
  详细解决方案

JDK7 新特性之try-with-resources

热度:33   发布时间:2024-02-22 23:30:58.0

什么是try-with-resources?

资源的关闭很多?停留在旧的流程上,jdk7新特性就有,但是很多?以为是jdk8的 在try( ...)?声 明的资源,会在try-catch代码块结束后?动关闭掉

  • 旧的写法
public static void main(String[] args) throws IOException {String path = "/Users/vincent/Desktop/t.txt";test(path);
}
private static void test(String filepath) throws FileNotFoundException {OutputStream out = new FileOutputStream(filepath);try {out.write((filepath + "可以学习java架构课程").getBytes());} catch (Exception e) {e.printStackTrace();} finally {try {out.close();} catch (IOException e) {e.printStackTrace();}}
}
  • 新的写法
private static void test(String filepath) {try (OutputStream out = new FileOutputStream(filepath);) {out.write((filepath + "可以学习java架构课程").getBytes());} catch (Exception e) {e.printStackTrace();}
}
  • 注意点 
  1. 实现了AutoCloseable接?的类,在try()?声明该类实例的时候,try结束后?动调?的 close?法,这个动作会早于finally?调?的?法
  2. 不管是否出现异常,try()?的实例都会被调?close?法
  3. try??可以声明多个?动关闭的对象,越早声明的对象,会越晚被close掉
  相关解决方案