今天偶然发现java的try catch尽然有了c#中using的做用,忽然发现本身没有跟上java的步伐了,今天就转一篇@红薯的文章,省得之后用的时候又找不到了。java
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。c#
新的语句支持包括流以及任何可关闭的资源,例如,通常咱们会编写以下代码来释放资源:ui
private static void customBufferStreamCopy(File source, File target) { //在最后不用再finally中释放资源了,能这样写的前提是要自动释放资源的类必须实现java.lang.AutoCloseable 接 //口 try (InputStream fis = new FileInputStream(source); OutputStream fos = new FileOutputStream(target)){ byte[] buf = new byte[8192]; int i; while ((i = fis.read(buf)) != -1) { fos.write(buf, 0, i); } } //也能够处理多个异常eg: //catch (IoException | NullPointerException) catch (Exception e) { e.printStackTrace(); } }
之后要多用了。spa