美文网首页工作生活
try-with-resources关闭流

try-with-resources关闭流

作者: simperLv | 来源:发表于2019-07-01 10:30 被阅读0次

传统方式关闭流需要到finally去关闭

public void test() {
    InputStream inputStream = null;
    try {
        inputStream = new FileInputStream("xxx");
        // 实现
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

使用try-with-resources关闭流

public void test2() {
    try (InputStream inputStream = new FileInputStream("xxx")) {
        byte[] bytes = inputStream.readAllBytes();
        // 实现
    } catch (IOException e) {
        e.printStackTrace();
    }
}

能被try-with-resources自动关闭的资源类型

只有实现了java.lang.AutoCloseable接口的类,才可以被自动关闭。否则就会报错。
也可以自定义可被自动关闭的类,只要实现java.lang.AutoCloseable接口就行

class YourClass implements java.lang.AutoCloseable{
   @Override
    public void close() {
        //xxxx
    }
}

参考来源链接

相关文章

网友评论

    本文标题:try-with-resources关闭流

    本文链接:https://www.haomeiwen.com/subject/yvgwcctx.html