Java - odstránenie súboru

Tento rýchly článok ilustruje, ako odstrániť súbor v Jave - najskôr pomocou JDK 6, potom JDK 7 a nakoniec knižnice Apache Commons IO.

Tento článok je súčasťou série „Java - Späť na základné“ tu na Baeldungu.

1. S programom Java - JDK 6

Začnime so štandardným riešením Java 6:

@ Test public void givenUsingJDK6_whenDeletingAFile_thenCorrect () vyvolá IOException {nový súbor ("src / test / zdroje / fileToDelete_jdk6.txt"). CreateNewFile (); Súbor fileToDelete = nový súbor ("src / test / resources / fileToDelete_jdk6.txt"); boolean success = fileToDelete.delete (); assertTrue (úspech); }

Ako môžeš vidieť - súbor musí existovať pred operáciou odstránenia; ak sa tak nestane, API nebude hádzať žiadne výnimky, ale namiesto toho vráti hodnotu false.

2. S programom Java - JDK 7

Prejdime k riešeniu JDK 7:

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

Teraz - tým sa lepšie využijú výnimky. Ak súbor neexistuje, keď je spustená operácia odstránenia - NoSuchFileException bude vyhodené pomocou API:

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

3. S Commons IO

Commons IO nám umožňuje ovládať správanie výnimiek pri mazaní súboru. Pre tiché odstránenie, ktoré prehltne všetky možné výnimky:

@Test public void givenUsingCommonsIo_whenDeletingAFileV1_thenCorrect () vyvolá IOException {FileUtils.touch (new File ("src / test / resources / fileToDelete_commonsIo.txt")); Súbor fileToDelete = FileUtils.getFile ("src / test / resources / fileToDelete_commonsIo.txt"); boolean success = FileUtils.deleteQuietly (fileToDelete); assertTrue (úspech); }

Upozorňujeme, že stále môžeme určiť, či bola operácia úspešná alebo nie, jednoduchou kontrolou návratovej hodnoty metódy odstránenia.

Teraz - ak chceme, aby bola vyvolaná výnimka:

@Test public void givenUsingCommonsIo_whenDeletingAFileV2_thenCorrect () vyvolá IOException {FileUtils.touch (nový súbor ("src / test / resources / fileToDelete.txt")); FileUtils.forceDelete (FileUtils.getFile ("src / test / resources / fileToDelete.txt")); }

Pokiaľ súbor, ktorý sa má vymazať, na súborovom systéme neexistuje, API bude štandardom FileNotFoundException:

java.io.FileNotFoundException: Súbor neexistuje: srctestresourcesfileToDelete.txt na org.apache.commons.io.FileUtils.forceDelete (FileUtils.java:2275)

A máte to - 4 jednoduché spôsoby, ako odstrániť súbor v jazyku Java.


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