Closeable ╰+哭是因爲堅強的太久メ 2022-02-14 15:41 153阅读 0赞 JDK7之前 JDK7之前的版本在释放资源的时候,使用的try-catch-finally来操作资源。 其中,try代码块中使用获取、修改资源,catch捕捉资源操作异常,finally代码块来释放资源。 try \{ fos = new FileOutputStream("test.txt"); dos = new DataOutputStream(fos); dos.writeUTF("JDK7"); \} catch (IOException e) \{ // error处理 \} finally \{ fos.close(); dos.close(); \} 问题来了,finally代码块中的fos.close()出现了异常,将会阻止dos.close()的调用,从而导致dos没有正确关闭而保持开放状态。 解决方法是把finally代码块中的两个fos和dos的关闭继续套在一个try-catch-finally代码块中。 FileOutputStream fos = null; DataOutputStream dos = null; try \{ fos = new FileOutputStream("test.txt") dos = new DataOutputStream(fos); // 写一些功能 \} catch (IOException e) \{ // error处理 \} finally \{ try { fos.close(); dos.close(); } catch (IOException e) { // log the exception } \} JDK7及之后 JDK7之后有了带资源的try-with-resource代码块,只要实现了AutoCloseable或Closeable接口的类或接口,都可以使用该代码块来实现异常处理和资源关闭异常抛出顺序。 try(FileOutputStream fos = new FileOutputStream("test.txt"))\{ // 写一些功能 \} catch(Exception e) \{ // error处理 \} 我们可以发现,在新版本的资源try-catch中,我们已经不需要对资源进行显示的释放,而且所有需要被关闭的资源都能被关闭。 需要注意的是,资源的close方法的调用顺序与它们的创建顺序是相反的。
相关 java中 Closeable 和 AutoCloseable接口 自动close【全网最详细】 目录 Closeable 和 AutoCloseable jdk1.7之前 jdk1.7之后 案例代码v1.0 案例代码v2.0 案例代码v3.0 ------ 左手的ㄟ右手/ 2024年03月24日 23:17/ 0 赞/ 82 阅读
相关 Closeable接口优雅方便的自动关闭资源 转载自:[https://blog.csdn.net/nuomizhende45/article/details/105924637][https_blog.csdn.net_ Dear 丶/ 2023年02月20日 05:58/ 0 赞/ 22 阅读
相关 AutoCloseable,Closeable和Flushable 探究java IO之AutoCloseable,Closeable和Flushable接口 有3个接口对于流类相当重要。其中两个接口是Closeable和Flu Myth丶恋晨/ 2022年08月22日 04:55/ 0 赞/ 137 阅读
相关 Java nio 的Channel接口继承了Closeable,为什么还要有close() 方法 首先Api是这样给出的: Closeable的close()方法: void close() throws IOException 今天药忘吃喽~/ 2022年06月03日 10:12/ 0 赞/ 247 阅读
相关 Java的Closeable接口close()方法的意义 Closeable接口又继承了另外的父接口AutoCloseable > 其中close()方法是关闭流并且释放与其相关的任何方法,如果流已被关闭,那么调用此方法没有效果。 旧城等待,/ 2022年05月16日 11:58/ 0 赞/ 434 阅读
相关 AutoCloseable,Closeable和Flushable 探究java IO之AutoCloseable,Closeable和Flushable接口 有3个接口对于流类相当重要。其中两个接口是Closeable和Flush r囧r小猫/ 2022年04月08日 11:25/ 0 赞/ 189 阅读
相关 Closeable JDK7之前 JDK7之前的版本在释放资源的时候,使用的try-catch-finally来操作资源。 其中,try代码块中使用获取、修改资源,catch捕捉资源操作异常 ╰+哭是因爲堅強的太久メ/ 2022年02月14日 15:41/ 0 赞/ 154 阅读
相关 java IO之AutoCloseable,Closeable和Flushable接口 有3个接口对于流类相当重要。其中两个接口是Closeable和Flushable,它们是在java.io包中定义的,并且是由JDK5添加的。第3个接口是AutoColseabl Bertha 。/ 2021年06月11日 15:10/ 0 赞/ 375 阅读
还没有评论,来说两句吧...