3

Apache の POI のファイル サイズを取得するにはどうすればよいHSSFWorkbookですか?

私は次のようなコードを持っています

// inside Servlet
OutputStream out = response.getOutputStream();
hSSFWorkbook.write(out);

Content-Lengthそして、応答にヘッダーを追加したいと思います。

4

1 に答える 1

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

于 2012-09-19T13:39:30.320 に答える