このファイル消して大丈夫だったかな・・・?
 消すと動かなくなったりしないかな・・・??
 時間が経つとファイルを消すだけでも不安になったりします(; ・`д・´)
 面倒でも、使い終わったら不要なファイルは消すようにしましょう♪
ファイルを削除するサンプル
2つのファイルを消します。1つはその場で消して、1つはアプリケーションが終了する際に削除を行います。
 また、アプリケーションをすぐに終了させないように、20秒待っています。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.io.File; public class FileDelete2Test {     public static void main(String[] args) {         String filePath1 = "c:\\test\\test1.txt";         String filePath2 = "c:\\test\\test2.txt";         delete1(filePath1);         delete2(filePath2);         try {             //20秒待つ             Thread.sleep(20 * 1000);         } catch (InterruptedException e) {             e.printStackTrace();         }     }     public static void delete1(String filePath) {         File file = new File(filePath);         file.deleteOnExit();     }     public static void delete2(String filePath) {         File file = new File(filePath);         file.delete();     } } | 
実行結果
test1.txtは、アプリケーションが終了するタイミングで削除されます。(≒約20秒後に消える)
 test2.txtは、アプリケーションが終了する前にすぐ削除されます。
サンプルの解説
File#delete()を使うと、ファイルを削除することができます。
 こちらは、File#delete()を呼び出した瞬間にファイルを削除します。
 File#deleteOnExit()も同様に、ファイルを削除することができます。
 こちらの場合はアプリケーションを終了する際に、ファイルを削除します。
 主に、アプリケーションで利用する一時的なワークファイルを消すために用意されています。
 昔は、JavaのバグによりFile#deleteOnExit()を使ってもWindowsではうまく削除されないことがありました。
 現在では、このバグは解消しているため、アプリケーションを終了する際に、正しく削除することができます。
 ただし、当然ですが誰かにファイルが掴まれていたり、異常終了すれば消えません。また、削除の成功・失敗に関わらずアプリケーションは終了します。
 ですので、File#deleteOnExit()は、あまり使わない方が良いかもしれません。














