Java – Delete a File

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.

Related posts:

Autoboxing và Unboxing trong Java
Debugging Reactive Streams in Java
Java Program to Implement Merge Sort Algorithm on Linked List
Creating Docker Images with Spring Boot
Mệnh đề if-else trong java
Java Program to Generate All Possible Combinations of a Given List of Numbers
4 tính chất của lập trình hướng đối tượng trong Java
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Difference Between Wait and Sleep in Java
Mệnh đề Switch-case trong java
Introduction to the Java NIO Selector
Vòng lặp for, while, do-while trong Java
Java – Create a File
Spring Boot Application as a Service
Hướng dẫn Java Design Pattern – Strategy
Setting Up Swagger 2 with a Spring REST API
Compact Strings in Java 9
Remove HTML tags from a file to extract only the TEXT
Lớp HashMap trong Java
Java Program to Generate a Random Subset by Coin Flipping
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Most commonly used String methods in Java
Java Program to Implement Suffix Tree
Java Program to Permute All Letters of an Input String
Java Program to Compute the Area of a Triangle Using Determinants
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Guide to Selenium with JUnit / TestNG
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
LIKE Queries in Spring JPA Repositories
Simultaneous Spring WebClient Calls