Java中使用try代码块自动关闭各种流(IO流……)

推荐写在 try 的括号中

/** 方式一、方式二是等价的
     * <li>推荐使用方式一</li>
     * @since 2023/5/18 0018
     * @author CC
     **/
    public void closeStream() throws IOException {
        //使用方式一(推荐):各种“流”,这些流都是需要关闭的。
        // -> 这些流会自动关闭。这些流的作用域仅在这个try代码块中
        try (POIFSFileSystem poifsFileSystem = new POIFSFileSystem();
             InputStream byteInputStream = new ByteArrayInputStream(new byte[1]);
             ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ){
            //业务……使用:poifsFileSystem、byteInputStream、outputStream
        } catch (Exception e) {
            e.printStackTrace();
        }

        //使用方式二:各种“流”,这些流都是需要关闭的。
        // -> 这些流需要手动关闭
        POIFSFileSystem poifsFileSystem = new POIFSFileSystem();
        InputStream byteInputStream = new ByteArrayInputStream(new byte[1]);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        try {
            //业务……使用:poifsFileSystem、byteInputStream、outputStream
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            poifsFileSystem.close();
            byteInputStream.close();
            outputStream.close();
        }
    }

posted on 2023-05-18 09:58  C_C_菜园  阅读(1299)  评论(0)    收藏  举报

导航