Java - Fájl törlése

Ez a rövid cikk bemutatja, hogyan lehet egy fájlt törölni a Java-ból - először a JDK 6, majd a JDK 7 és végül az Apache Commons IO könyvtár segítségével.

Ez a cikk a „Java - Vissza az alapokhoz” sorozat része, itt, Baeldungon.

1. Java-val - JDK 6

Kezdjük a standard Java 6 megoldással:

@Test public void givenUsingJDK6_whenDeletingAFile_thenCorrect () dobja az IOException {új fájlt ("src / test / resources / fileToDelete_jdk6.txt"). CreateNewFile (); File fileToDelete = new File ("src / test / resources / fileToDelete_jdk6.txt"); logikai siker = fileToDelete.delete (); assertTrue (siker); }

Amint látod - a fájlnak léteznie kell a törlési művelet előtt; ha nem, akkor az API nem dob kivételeket, hanem hamis értéket ad vissza.

2. Java-val - JDK 7

Térjünk át a JDK 7 megoldásra:

@Test public void givenUsingJDK7nio2_whenDeletingAFile_thenCorrect () használatával az IOException {Files.createFile (Paths.get ("src / test / resources / fileToDelete_jdk7.txt")) dob; Path fileToDeletePath = Paths.get ("src / test / resources / fileToDelete_jdk7.txt"); Files.delete (fileToDeletePath); }

Most - ez jobban kihasználja a kivételeket. Ha a fájl nem létezik a törlési művelet elindításakor - an NoSuchFileException az API dobja:

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

3. A Commons IO-val

A Commons IO lehetővé teszi számunkra, hogy ellenőrizzük a kivételek viselkedését egy fájl törlésekor. A lehetséges kivételeket elnyelő csendes törléshez:

@Test public void givenUsingCommonsIo_whenDeletingAFileV1_thenCorrect () dobja az IOException {FileUtils.touch (új fájl ("src / test / resources / fileToDelete_commonsIo.txt")); File fileToDelete = FileUtils.getFile ("src / test / resources / fileToDelete_commonsIo.txt"); logikai siker = FileUtils.deleteQuietly (fileToDelete); assertTrue (siker); }

Vegye figyelembe, hogy a törlési módszer visszatérési értékének egyszerű ellenőrzésével még mindig meg tudjuk állapítani, hogy a művelet sikeres volt-e vagy sem.

Most - ha kivételt akarunk dobni:

@Test public void givenUsingCommonsIo_whenDeletingAFileV2_thenCorrect () dobja az IOException {FileUtils.touch (új File ("src / test / resources / fileToDelete.txt")); FileUtils.forceDelete (FileUtils.getFile ("src / test / resources / fileToDelete.txt")); }

Ha a törlendő fájl nem létezik a fájlrendszerben, az API dob egy szabványt FileNotFoundException:

java.io.FileNotFoundException: A fájl nem létezik: srctestresourcesfileToDelete.txt az org.apache.commons.io.FileUtils.forceDelete (FileUtils.java:2275)

És itt van - 4 egyszerű módszer a Java fájlok törlésére.


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