Java 获取HSSF工作簿的长度
如何获取Apache POI的文件大小Java 获取HSSF工作簿的长度,java,servlets,apache-poi,Java,Servlets,Apache Poi,如何获取Apache POI的文件大小HSSFWorkbook 我有这样的代码 // inside Servlet OutputStream out = response.getOutputStream(); hSSFWorkbook.write(out); 我想在响应中添加内容长度标题。最好的办法是将其缓冲在某个地方,例如 ByteArrayOutputStream baos = new ByteArrayOutputStream(); workbook.write(baos); int
HSSFWorkbook
我有这样的代码
// inside Servlet
OutputStream out = response.getOutputStream();
hSSFWorkbook.write(out);
我想在响应中添加
内容长度标题。最好的办法是将其缓冲在某个地方,例如
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只会在需要写出所有内容时计算大小,因为计算大小几乎是写出内容的一半!因此,您最好一次性获得大小和序列化从未使用POI,但我看到他们的Javadocs列出getBytes()返回一个字节数组,您可以从中计算字节大小。@asgs抱歉,但我使用的是工作簿
(接口),而不是HSSFWorkbook
(实现)。忘了把它记下来。