JDK1.7之后,引入了try-with-resource,使得关闭资源操作无需层层嵌套在finally中。
1.模板
class MyResource implements AutoCloseable{
public void open(){
System.out.println("resource is open!");
}
@Override
public void close() throws Exception {
System.out.println("resource is close!");
}
}
例子:
public class MyResources implements AutoCloseable{
FileInputStream fileInputStream;
public int read(String path) throws IOException {
fileInputStream = new FileInputStream(path);
return fileInputStream.read();
}
@Override
public void close() throws Exception {
if(fileInputStream != null){
fileInputStream.close();
System.out.println("关闭");
}
}
public static void main(String[] args) {
try (MyResources resources = new MyResources()){
System.out.println(resources.read("E:\\222.txt"));
System.out.println(resources.read("E:\\222.txt"));
System.out.println(resources.read("E:\\222.txt"));
} catch (Exception e) {
e.printStackTrace();
}
}
}