この簡単な記事では、Javaでファイルを削除する方法を説明します。最初にJDK 6を使用し、次にJDK 7を使用し、最後に Apache CommonsIOライブラリを使用します。
この記事は、ここBaeldungの「Java –BacktoBasic」シリーズの一部です。
1. Javaを使用– JDK 6
標準のJava6ソリューションから始めましょう。
@Test
public void givenUsingJDK6_whenDeletingAFile_thenCorrect() throws IOException {
new File("src/test/resources/fileToDelete_jdk6.txt").createNewFile();
File fileToDelete = new File("src/test/resources/fileToDelete_jdk6.txt");
boolean success = fileToDelete.delete();
assertTrue(success);
}
ご覧のとおり–ファイルは削除操作の前に存在している必要があります; そうでない場合、APIは例外をスローしませんが、代わりにfalseを返します。
2. Javaを使用– JDK 7
JDK7ソリューションに移りましょう。
@Test
public void givenUsingJDK7nio2_whenDeletingAFile_thenCorrect() throws IOException {
Files.createFile(Paths.get("src/test/resources/fileToDelete_jdk7.txt"));
Path fileToDeletePath = Paths.get("src/test/resources/fileToDelete_jdk7.txt");
Files.delete(fileToDeletePath);
}
今–これは例外をよりよく利用します。 削除操作がトリガーされたときにファイルが存在しない場合– NoSuchFileExceptionがAPIによってスローされます。
java.nio.file.NoSuchFileException: srctestresourcesfileToDelete_jdk7.txt
at s.n.f.WindowsException.translateToIOException(WindowsException.java:79)
3. CommonsIOを使用
Commons IOを使用すると、ファイルを削除するときの例外の動作を制御できます。 考えられる例外を飲み込む静かな削除の場合:
@Test
public void givenUsingCommonsIo_whenDeletingAFileV1_thenCorrect() throws IOException {
FileUtils.touch(new File("src/test/resources/fileToDelete_commonsIo.txt"));
File fileToDelete = FileUtils.getFile("src/test/resources/fileToDelete_commonsIo.txt");
boolean success = FileUtils.deleteQuietly(fileToDelete);
assertTrue(success);
}
削除メソッドの戻り値を確認するだけで、操作が成功したかどうかを判断できることに注意してください。
今–例外をスローしたい場合:
@Test
public void givenUsingCommonsIo_whenDeletingAFileV2_thenCorrect() throws IOException {
FileUtils.touch(new File("src/test/resources/fileToDelete.txt"));
FileUtils.forceDelete(FileUtils.getFile("src/test/resources/fileToDelete.txt"));
}
削除するファイルがファイルシステムに存在しない場合、APIは標準のFileNotFoundExceptionをスローします。
java.io.FileNotFoundException: File does not exist: srctestresourcesfileToDelete.txt
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2275)
これで、Javaでファイルを削除する4つの簡単な方法がわかりました。