This quick article illustrates how to delete a File in Java β first using JDK 6, then JDK 7 and finally the Apache Commons IO library.
This article is part of the βJava β Back to Basicβ series here on Baeldung.
1. With Java β JDK 6
Letβs start with the standard Java 6 solution:
@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);
}
As you can see β the file must exist before the delete operation; if it doesnβt, the API will not throw any exceptions but will instead return false.
2. With Java β JDK 7
Letβs move on to the JDK 7 solution:
@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);
}
Now β this will make better use of exceptions. If the file doesnβt exist when the delete operation is triggered β an NoSuchFileException will be thrown by the API:
java.nio.file.NoSuchFileException: srctestresourcesfileToDelete_jdk7.txt
at s.n.f.WindowsException.translateToIOException(WindowsException.java:79)
3. With Commons IO
Commons IO allows us to control the exceptions behavior when deleting a File. For a quiet delete that swallows any possible exceptions:
@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);
}
Note that we can still determine if the operation was successful or not by simply checking the return value of the delete method.
Now β if we do want an exception to be thrown:
@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"));
}
If the file to be deleted doesnβt exist on the filesystem, the API will throw a standard FileNotFoundException:
java.io.FileNotFoundException: File does not exist: srctestresourcesfileToDelete.txt
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2275)
And there you have it β 4 simple ways to delete a File in Java.
