Java - Slet en fil

Denne hurtige artikel illustrerer, hvordan du sletter en fil i Java - først ved hjælp af JDK 6, derefter JDK 7 og endelig Apache Commons IO-biblioteket.

Denne artikel er en del af "Java - Back to Basic" -serien her på Baeldung.

1. Med Java - JDK 6

Lad os starte med standard Java 6-løsningen:

@Test offentlig ugyldighed givenUsingJDK6_whenDeletingAFile_thenCorrect () kaster IOException {ny fil ("src / test / resources / fileToDelete_jdk6.txt"). CreateNewFile (); File fileToDelete = ny fil ("src / test / resources / fileToDelete_jdk6.txt"); boolsk succes = fileToDelete.delete (); assertTrue (succes); }

Som du kan se - filen skal eksistere inden sletningen; hvis den ikke gør det, kaster API'en ikke nogen undtagelser, men returnerer i stedet falsk.

2. Med Java - JDK 7

Lad os gå videre til JDK 7-løsningen:

@Test offentlig ugyldighed givenUsingJDK7nio2_whenDeletingAFile_thenCorrect () kaster IOException {Files.createFile (Paths.get ("src / test / resources / fileToDelete_jdk7.txt")); Sti fileToDeletePath = Paths.get ("src / test / resources / fileToDelete_jdk7.txt"); Files.delete (fileToDeletePath); }

Nu - dette vil gøre brug af undtagelser bedre. Hvis filen ikke findes, når sletningen udløses - en NoSuchFileException vil blive kastet af API:

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

3. Med Commons IO

Commons IO giver os mulighed for at kontrollere undtagelsesadfærden, når vi sletter en fil. For en stille sletning, der sluger eventuelle undtagelser:

@Test offentlig ugyldighed givenUsingCommonsIo_whenDeletingAFileV1_thenCorrect () kaster IOException {FileUtils.touch (ny fil ("src / test / resources / fileToDelete_commonsIo.txt")); File fileToDelete = FileUtils.getFile ("src / test / resources / fileToDelete_commonsIo.txt"); boolsk succes = FileUtils.deleteQuietly (fileToDelete); assertTrue (succes); }

Bemærk, at vi stadig kan afgøre, om operationen var vellykket eller ikke ved blot at kontrollere returværdien af ​​sletningsmetoden.

Nu - hvis vi ønsker, at der skal kastes en undtagelse:

@Test offentlig ugyldighed givenUsingCommonsIo_whenDeletingAFileV2_thenCorrect () kaster IOException {FileUtils.touch (ny fil ("src / test / resources / fileToDelete.txt")); FileUtils.forceDelete (FileUtils.getFile ("src / test / resources / fileToDelete.txt")); }

Hvis filen, der skal slettes, ikke findes på filsystemet, kaster API'en en standard FileNotFoundException:

java.io.FileNotFoundException: Filen findes ikke: srctestresourcesfileToDelete.txt på org.apache.commons.io.FileUtils.forceDelete (FileUtils.java:2275)

Og der har du det - 4 enkle måder at slette en fil i Java.