3
如何獲取Apache的POI文件大小HSSFWorkbook
?獲取HSSFWorkbook的長度
我有一個像
// inside Servlet
OutputStream out = response.getOutputStream();
hSSFWorkbook.write(out);
代碼,我想Content-Length
頭添加到響應。
如何獲取Apache的POI文件大小HSSFWorkbook
?獲取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緩衝只會計算出當時的大小使用一個臨時文件,而不是它需要把所有東西寫出來,因爲計算大小几乎是寫出的一半!所以,你最好一次性獲得大小和序列化
從來沒有與POI合作,但我看到他們的Javadocs列表getBytes()返回一個字節數組,從中計算字節大小。 – asgs
@asgs抱歉,我使用'Workbook'(接口),而不是'HSSFWorkbook'(實現)。忘記了解它。 – MyTitle