Java - Hapus File

Artikel singkat ini mengilustrasikan cara menghapus File di Java - pertama menggunakan JDK 6, lalu JDK 7, dan terakhir library Apache Commons IO.

Artikel ini adalah bagian dari seri “Java - Kembali ke Dasar” di Baeldung.

1. Dengan Java - JDK 6

Mari kita mulai dengan solusi Java 6 standar:

@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); }

Seperti yang Anda lihat - file harus ada sebelum operasi hapus ; jika tidak, API tidak akan menampilkan pengecualian apa pun, melainkan akan menampilkan false.

2. Dengan Java - JDK 7

Mari beralih ke solusi JDK 7:

@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); }

Sekarang - ini akan menggunakan pengecualian dengan lebih baik. Jika file tidak ada saat operasi penghapusan dipicu - NoSuchFileException akan dilempar oleh API:

java.nio.file.NoSuchFileException: srctestresourcesfileToDelete_jdk7.txt at s.n.f.WindowsException.translateToIOException(WindowsException.java:79)

3. Dengan Commons IO

Commons IO memungkinkan kita untuk mengontrol perilaku pengecualian saat menghapus File. Untuk penghapusan senyap yang menelan semua kemungkinan pengecualian:

@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); }

Perhatikan bahwa kita masih dapat menentukan apakah operasi itu berhasil atau tidak dengan hanya memeriksa nilai kembalian dari metode delete.

Sekarang - jika kita ingin pengecualian dilemparkan:

@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")); }

Jika file yang akan dihapus tidak ada di sistem file, API akan menampilkan FileNotFoundException standar :

java.io.FileNotFoundException: File does not exist: srctestresourcesfileToDelete.txt at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2275)

Dan begitulah - 4 cara sederhana untuk menghapus File di Java.