Jersey中的StreamingOutput需要关闭吗?

时间:2016-04-29 01:48:24

标签: jersey-2.0 outputstream

我有一个片段从jersey 2.22下载文件,

StreamingOutput stream = (OutputStream os) -> {
        try {
            os.write( get a byte array here);
        } catch (Exception e) {
            LOGGER.error("Failed to fetch file, id:" + fileName, e);
            throw new Exception());
        } 
    };

上面的代码正在运行,但我想知道我写的输出流是否需要关闭。

我在OutboundMessageContext中搜索了泽西的源代码

 public void close() {
    if(this.hasEntity()) {
        try {
            OutputStream e = this.getEntityStream();
            e.flush();
            e.close();
        } catch (IOException var10) {
            Logger.getLogger(OutboundMessageContext.class.getName()).log(Level.FINE, var10.getMessage(), var10);
        } finally {
            if(!this.committingOutputStream.isClosed()) {
                try {
                    this.committingOutputStream.close();
                } catch (IOException var9) {
                    Logger.getLogger(OutboundMessageContext.class.getName()).log(Level.FINE, var9.getMessage(), var9);
                }
            }

        }
    }

}

此方法是关闭实体流。我不确定这是否是使用StreamingOutput的正确关闭方法,任何人都可以帮忙吗?

0 个答案:

没有答案