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.