我通过各种方法写输出流。在关闭之前,我怎样才能找出输出流的内容长度?
答案 0 :(得分:16)
最简单的方法可能是将它包装在另一个OutputStream
实现中,该实现转发所有写请求,但保留一个内部计数器。然后你只需写信给那。不应该太难实现 - 事实上可能已经有了。
编辑:只需猜测一个合理的名称(CountingOutputStream
)就可以在Apache Commons IO中找到一个实现。
答案 1 :(得分:8)
问题是在开始将任何数据写入输出流之前,必须在响应头中设置内容长度。所以你的选择是:
答案 2 :(得分:2)
您可以考虑写入您自己的ByteArrayOutputStream并将其刷新到最后的响应输出流。