JDK7的新特性:在try的后面可以增加一个(),在括号中可以定义
流对象,流对象的作用域就在try中有效
try中的代码执行完毕,会自动把流对象释放,就不用写finally了
格式:
格式:
try(定义流对象。。。。可以定义多个){
可能会产生的异常代码
}catch(){
异常的处理逻辑
}
package com.baidu.文件类的代码;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class NewTryCatch {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("C:\\1.jpg");
FileOutputStream fos = new FileOutputStream("F:\\develop\\1.jpg");) {
int len = 0;
while ((len = fis.read()) != -1) {
fos.write(len);
}
} catch (IOException e) {
System.out.println(e);
}
}
}
JDK9的新特性:try的前面可以定义流对象,try后面的()括号中可以直接引用流对象的名称,
在try代码执行完毕后,流对象也可以释放掉,也不用写finally了
格式:
A a = new A();
B b = new B();
try(a,b){
可能产生的异常代码
}catch(异常类名 变量名){
异常处理的逻辑
}
package com.baidu.文件类的代码;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class JDK9NewTryCatch {
public static void main(String[] args) throws FileNotFoundException {
FileInputStream fis = new FileInputStream("C:\\1.jpg");
FileOutputStream fos = new FileOutputStream("F:\\develop\\2.jpg");
try (fis; fos) {
int len = 0;
while ((len = fis.read()) != -1) {
fos.write(len);
}
} catch (IOException e) {
System.out.println(e);
}
}
}