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 は、すべてを書き出す必要があるときにのみサイズを計算します。サイズを計算することは、書き出す作業のほぼ半分です! したがって、サイズとシリアル化を一度に取得するのが最善です