java try with resources方式关闭资源
发布日期:2021-06-30 11:06:52
浏览次数:2
分类:技术文章
本文共 2267 字,大约阅读时间需要 7 分钟。
在我们使用资源时,一般资源使用完毕,都需要把资源关闭掉,在JDK7之前,我们一般都是使用try-catch-finally在finally中进行资源的关闭。
示例如下:
public static void test1(){ FileInputStream ins = null; FileOutputStream out = null; try { ins = new FileInputStream(new File("G://aa.text")); out = new FileOutputStream(new File("G://bb.text")); //业务逻辑 }catch (FileNotFoundException ex){ ex.printStackTrace(); }finally { //关闭资源 if(ins != null){ try { ins.close(); }catch (Exception insex){ insex.printStackTrace(); } } if(out != null){ try { out.close(); }catch (Exception outex){ outex.printStackTrace(); } } } }
我们使用了输入流和输出流,在使用完后,需要手动去关闭。
在jdk7后,提供了一种新的方式:try-with-resources 方式来管理资源,在try中声明资源,当程序执行完后,会自动将声明的资源关闭掉,方式如下:
public static void test2(){ try(FileInputStream ins = new FileInputStream(new File("G:/aa.text")); FileOutputStream out = new FileOutputStream(new File("G://bb.text"))){ //业务逻辑 }catch (FileNotFoundException fnex){ fnex.printStackTrace(); }catch (IOException ioex){ ioex.printStackTrace(); } }
附:
资源一般是指:实现了Closeable接口或者AutoCloseable接口,这种资源使用完毕后都需要关闭。package java.io;import java.io.IOException;/** * A {@code Closeable} is a source or destination of data that can be closed. * The close method is invoked to release resources that the object is * holding (such as open files). * * @since 1.5 */public interface Closeable extends AutoCloseable { /** * Closes this stream and releases any system resources associated * with it. If the stream is already closed then invoking this * method has no effect. * *As noted in {@link AutoCloseable#close()}, cases where the * close may fail require careful attention. It is strongly advised * to relinquish the underlying resources and to internally * mark the {@code Closeable} as closed, prior to throwing * the {@code IOException}. * * @throws IOException if an I/O error occurs */ public void close() throws IOException;}
转载地址:https://it4all.blog.csdn.net/article/details/81169357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月27日 19时52分52秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【转载】将Ubuntu16.04 中gedit在仅显示一个文件时显示文件名tab
2019-04-30
fstream 对象多次使用时注意clear
2019-04-30
调试 LenaCV 3D Camera (Linux)
2019-04-30
OpenCV杂记 - Mat in C++
2019-04-30
双目Stereo重建算法SGM(1) - 互信息(Mutual Information)
2019-04-30
PyTorch的学习笔记02 - backward( )函数
2019-04-30
极简光流(optical flow) - 基于深度和相机位姿的光流
2019-04-30
Sublime Text
2019-04-30
kalibr使用记录
2019-04-30
kvm部署
2019-04-30
exsi部署
2019-04-30
keepalived
2019-04-30
zabbix监控脑裂
2019-04-30
lnmp部署
2019-04-30
nginx平滑升级
2019-04-30