TempFile」タグアーカイブ

Javaで作成した一時ファイルを終了時に削除する

この記事は【2016年10月6日】と作成から2年以上経っているため、記事の内容が古い可能性があります。最新の情報を合わせてご確認されることを推奨いたします。

Javaのjava.nio.file.Filesで作った一時ファイルをプログラム終了時に削除するのにFilesクラスにそれ用のAPIがあるかと思っていたけどなかったので以下のようにして対応した。

File#deleteOnExit

FileのAPIを使う方法。

shutdown-hook

シャットダウンフックを使う方法。

StandardOption.DELETE_ON_CLOSE

こちらはcloseメソッドが呼ばれた時に削除されるらしい。以下ドキュメントの引用。

閉じるときに削除します。このオプションがある場合、実装はファイルが適切な close メソッドによって閉じられるときに、ベストエフォートでファイルを削除しようとします。close メソッドが呼び出された場合、Java 仮想マシンの終了 (『Java 言語仕様』の定義どおりに正常終了か、可能な場合は異常終了) 時にファイルを削除するためのベストエフォートの試みが行われます。

参考リンク

改訂2版 パーフェクトJava

改訂2版 パーフェクトJava

posted with amazlet at 16.11.26
井上 誠一郎 永井 雅人
技術評論社
売り上げランキング: 46,819