自动资源管理是在try语句上的扩展,语法如下:
try (声明或初始化资源语句){
//可能会发生异常的语句
} catch (Throwable e1) {
//处理异常e1
} catch (Throwable e2){
//处理异常e2
} catch (Throwable e3){
//处理异常e3
}
只有实现了java.lang.AutoCloseable接口对象才能采用自动资源管理技术。
代码示例
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Finally {
public static void main(String[] args) {
Date date = readDate();
System.out.println("日期 = " + date);
}
private static Date readDate() {
//自动资源管理(FileInputStream IO输入流、InputStreamReader IO输入流、BufferedReader输入流)
try(FileInputStream readfile = new FileInputStream("readme.txt");
InputStreamReader ir = new InputStreamReader(readfile);
BufferedReader in = new BufferedReader(ir)
) {
//读取文件中的一行数据
String str = in.readLine();
if(str == null){
return null;
}
//初始化时间格式
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//格式化时间格式
Date date = df.parse(str);
return date;
} catch (FileNotFoundException e) {
System.out.println("处理FileNotFoundException...");
e.printStackTrace();
} catch (IOException e){
System.out.println("处理IOException...");
e.printStackTrace();
}catch (ParseException e){
System.out.println("处理ParseException...");
e.printStackTrace();
}
return null;
}
}