如何获取Apache的POI HSSFWorkbook
的文件大小?
我有像
这样的代码// inside Servlet
OutputStream out = response.getOutputStream();
hSSFWorkbook.write(out);
我想在回复中添加Content-Length
标题。
答案 0 :(得分:4)
最好的办法是在某处缓冲它,例如
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
int length = baos.size();
// Send length...
// Send data
OutputStream out = response.getOutputStream();
out.write( baos.toByteArray() );
out.close();
如果您想避免在
中使用内存缓冲,则可以使用临时文件POI只会在需要写出所有内容时计算大小,因为确定大小几乎是写出工作的一半!所以,你最好一次性获得大小和序列化