是否有必要关闭在HttpServletResponseWrapper中创建的OutputStream

时间:2017-11-23 06:47:48

标签: java outputstream

我想实现一个java接口HttpServletResponseWrapper,我在StackOverflow(Looking for an example for inserting content into the response using a servlet filter)中得到了答案 在这个答案中我们创建了一个ByteArrayPrintWriter,但在此代码中我们为什么不关闭ByteArrayPrintWriter流,这样有什么问题吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

在这种特殊情况下,没有必要关闭ByteArrayOutputStream,因为我们知道内部实现没有缓冲区或任何需要close()调用的东西。字节直接写入后备阵列,并且结束为NO-OP

/**
 * Closing a <tt>ByteArrayOutputStream</tt> has no effect. The methods in
 * this class can be called after the stream has been closed without
 * generating an <tt>IOException</tt>.
 */
public void close() throws IOException {
}

为了保持一致性,仍然可以打电话给close(),但这是您的选择。无论哪种方式都没问题。