IO流自动关闭总结
总结
JDK1.7及以上,IO流自动关闭总结:
(1)需要关闭的资源必须实现Closeable或者AutoCloseable;查看JDK源码,Closeable继承自AutoCloseable,这两个接口中只有一个方法:void close() throws Exception;
(2)需要关闭的资源必须重写close()方法,方法中必须包含完整的资源关闭操作代码;
(3)调用写法:自动关闭功能属于try的增强特性,此时无需显式的书写资源关闭代码,try段代码执行完毕后,系统会自动调用资源的关闭方法关闭资源:
public static void main(String[] args) {
try(InputStream inputStream = new FileInputStream("D:/a.txt")) {
}catch (Exception e){
e.printStackTrace();
}
}
或者按旧的方式:
public static void main(String[] args) {
InputStream inputStream = null;
try {
inputStream = new FileInputStream("D:/a.txt");
}catch (Exception e){
e.printStackTrace();
} finally {
if(inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
inputStream = null;
e.printStackTrace();
}
}