Java - Slett en fil

Denne raske artikkelen illustrerer hvordan du sletter en fil i Java - først ved hjelp av JDK 6, deretter JDK 7 og til slutt Apache Commons IO-biblioteket.

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

1. Med Java - JDK 6

La oss starte med standard Java 6-løsningen:

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

Som du kan se - filen må eksistere før sletteoperasjonen; hvis den ikke gjør det, vil ikke API-en kaste noen unntak, men i stedet returnere falsk.

2. Med Java - JDK 7

La oss gå videre til JDK 7-løsningen:

@Test offentlig ugyldighet gittUsingJDK7nio2_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); }

Nå - dette vil gjøre bruk av unntak bedre. Hvis filen ikke eksisterer når slettingsoperasjonen utløses - en NoSuchFileException blir kastet av API: en:

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

3. Med Commons IO

Commons IO lar oss kontrollere unntakene når vi sletter en fil. For en stille sletting som svelger mulige unntak:

@Test offentlig ugyldighet 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 suksess = FileUtils.deleteQuietly (fileToDelete); assertTrue (suksess); }

Merk at vi fremdeles kan avgjøre om operasjonen var vellykket eller ikke, ved å bare sjekke returverdien for slettemetoden.

Nå - hvis vi ønsker at et unntak skal kastes:

@Test offentlig ugyldighet 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 som skal slettes ikke finnes på filsystemet, vil API-en kaste en standard FileNotFoundException:

java.io.FileNotFoundException: Filen eksisterer ikke: srctestresourcesfileToDelete.txt at org.apache.commons.io.FileUtils.forceDelete (FileUtils.java:2275)

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


$config[zx-auto] not found$config[zx-overlay] not found