Java - Verwijder een bestand

Dit korte artikel illustreert hoe u een bestand in Java verwijdert - eerst met behulp van JDK 6, vervolgens JDK 7 en ten slotte de Apache Commons IO-bibliotheek.

Dit artikel maakt deel uit van de serie "Java - Back to Basic" hier op Baeldung.

1. Met Java - JDK 6

Laten we beginnen met de standaard Java 6-oplossing:

@Test openbare ongeldig gegevenUsingJDK6_whenDeletingAFile_thenCorrect () gooit IOException {nieuw bestand ("src / test / resources / fileToDelete_jdk6.txt"). CreateNewFile (); File fileToDelete = nieuw bestand ("src / test / resources / fileToDelete_jdk6.txt"); boolean success = fileToDelete.delete (); assertTrue (succes); }

Zoals je kunt zien - het bestand moet bestaan ​​vóór de verwijderbewerking; als dit niet het geval is, zal de API geen uitzonderingen genereren, maar in plaats daarvan false retourneren.

2. Met Java - JDK 7

Laten we verder gaan met de JDK 7-oplossing:

@Test openbare ongeldig gegevenUsingJDK7nio2_whenDeletingAFile_thenCorrect () gooit IOException {Files.createFile (Paths.get ("src / test / resources / fileToDelete_jdk7.txt")); Pad fileToDeletePath = Paths.get ("src / test / resources / fileToDelete_jdk7.txt"); Files.delete (fileToDeletePath); }

Nu - dit zal beter gebruik maken van uitzonderingen. Als het bestand niet bestaat wanneer de verwijderbewerking wordt geactiveerd - een NoSuchFileException zal worden gegenereerd door de API:

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

3. Met Commons IO

Commons IO stelt ons in staat om het gedrag van uitzonderingen te bepalen bij het verwijderen van een bestand. Voor een stille verwijdering die mogelijke uitzonderingen opslokt:

@Test openbare leegte gegevenUsingCommonsIo_whenDeletingAFileV1_thenCorrect () gooit IOException {FileUtils.touch (nieuw bestand ("src / test / resources / fileToDelete_commonsIo.txt")); File fileToDelete = FileUtils.getFile ("src / test / resources / fileToDelete_commonsIo.txt"); boolean success = FileUtils.deleteQuietly (fileToDelete); assertTrue (succes); }

Merk op dat we nog steeds kunnen bepalen of de bewerking succesvol was of niet door simpelweg de geretourneerde waarde van de delete-methode te controleren.

Nu - als we willen dat er een uitzondering wordt gegenereerd:

@Test openbare leegte gegevenUsingCommonsIo_whenDeletingAFileV2_thenCorrect () gooit IOException {FileUtils.touch (nieuw bestand ("src / test / resources / fileToDelete.txt")); FileUtils.forceDelete (FileUtils.getFile ("src / test / resources / fileToDelete.txt")); }

Als het te verwijderen bestand niet op het bestandssysteem bestaat, zal de API een standaard genereren FileNotFoundException:

java.io.FileNotFoundException: Bestand bestaat niet: srctestresourcesfileToDelete.txt op org.apache.commons.io.FileUtils.forceDelete (FileUtils.java:2275)

En daar heb je het - 4 eenvoudige manieren om een ​​bestand in Java te verwijderen.