如何获取 Apache POI 的文件大小HSSFWorkbook
?
我有类似的代码
// inside Servlet
OutputStream out = response.getOutputStream();
hSSFWorkbook.write(out);
我想在Content-Length
响应中添加标题。
如何获取 Apache POI 的文件大小HSSFWorkbook
?
我有类似的代码
// inside Servlet
OutputStream out = response.getOutputStream();
hSSFWorkbook.write(out);
我想在Content-Length
响应中添加标题。
最好的办法是在某处缓冲它,例如
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 只会在需要写出所有内容时计算大小,因为计算出大小几乎是写出工作的一半!所以,你最好一次性获得大小和序列化