java – 关闭BufferedOutputStream还关闭了底层的OutputStream吗
发布时间:2020-12-15 00:20:46 所属栏目:Java 来源:网络整理
导读:我通过调用response.getOutputStream()将二进制数据(从数据库中提取为一个Clob的CSV文件)流式传输到浏览器,并且在复制数据时通常将OutputStream包装在BufferedOutputStream中. 我应该关闭BufferedOutputStream还是关闭底层的OutputStream? [额外的问题:在
我通过调用response.getOutputStream()将二进制数据(从数据库中提取为一个Clob的CSV文件)流式传输到浏览器,并且在复制数据时通常将OutputStream包装在BufferedOutputStream中.
我应该关闭BufferedOutputStream还是关闭底层的OutputStream? [额外的问题:在这种情况下,我需要使用BufferedOutputStream吗? 解决方法
是的,它关闭它.关于你是否应该关闭它 – 你期望写什么其他的响应流?如果没有,我认为关闭它是很好.如果你没有关闭它,你应该显然是冲洗它 – 但我怀疑你可以为自己弄清楚:)
该行为实际上是继承自FilterOutputStream. FilterOutputStream.close的Javadocs状态:
至于你是否应该缓冲它 – 我不知道这是否定义良好.它可能被掩埋在servlet规范的某个地方 – 甚至可以配置(有时你真的不希望缓冲,但如果你可以缓冲整个响应,这意味着你可以提供更好的错误页面,如果出现问题,ve开始写作). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |