2016-06-30 11 views
0

Apache POIで新しいExcelワークブックファイルを作成して開くことはできますか?をファイルとして保存しますか?私は短期間のファイルとしてオープンしようとしています。インターネットからダウンロードしたかのように動作し、必要に応じて保存できますが、それ以外の場合は削除されます。新しいPOIブックを作成しますが保存しません

+0

POIブックに保存するデータを保存するだけでなく、保存することを選択した場合、実際のブックを生成するのはなぜですか? –

+0

@CeilingGecko以前のExcelデータからレポートソフトウェアを作成しようとしています。ユーザーが間違ってデータを作成するときに間違ったパラメータを使用すると、手動で削除するのではなく、2回のボタンクリックだけで簡単に行えます。 – JStef

答えて

3

いいえExcelはファイルを開きます。あなたが開いたファイルであっても、 "インターネットからダウンロード"されたファイルは、指定されたダウンロードディレクトリまたはユーザの一時ディレクトリに一時的に保存されます。

ユーザーの一時ディレクトリ(Files.createTemporaryFile()を参照)にブックを保存し、ユーザーが永続的に保管することを決定した後にのみ移動またはコピーすることができます。保持したくない場合は、すぐにFile.delete()で削除するか、アプリケーションがFile.deleteOnExit()で終了すると削除できます。

File.delete()File.deleteOnExit()は、削除しようとする前にアプリケーションがそれらのファイルと関連するストリームを閉じることを確認した場合にのみ、一貫して機能することに注意してください。 try-with-resources statementはこれに非常に役立ちます。

+0

ありがとう! 'File.deleteOnExit()'については、 'write()'の後にExcelファイルが閉じられたかどうかをプログラムがどのように知っていますか? – JStef

+0

それはできません。 OSはファイルが開いていることを知り、削除が行われないようにします。特定のファイルに作成するストリームが正しく閉じられていることを確認してください。私がリンクしているtry-with-resourcesステートメントを使用すると、JREにこれをさせることができます。 –

関連する問題