Java - Izbrišite datoteku

Ovaj kratki članak ilustrira kako izbrisati datoteku na Javi - prvo pomoću JDK 6, zatim JDK 7 i na kraju Apache Commons IO biblioteke.

Ovaj je članak dio serije "Java - Povratak na osnovno" ovdje na Baeldungu.

1. S Javom - JDK 6

Počnimo sa standardnim rješenjem Java 6:

@Test javna praznina givenUsingJDK6_whenDeletingAFile_thenCorrect () baca IOException {nova datoteka ("src / test / resources / fileToDelete_jdk6.txt"). CreateNewFile (); Datoteka fileToDelete = nova datoteka ("src / test / resources / fileToDelete_jdk6.txt"); logički uspjeh = fileToDelete.delete (); assertTrue (uspjeh); }

Kao što vidiš - datoteka mora postojati prije operacije brisanja; ako se to ne dogodi, API neće izbaciti nikakve iznimke, već će umjesto toga vratiti false.

2. S Javom - JDK 7

Prijeđimo na rješenje JDK 7:

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

Sada - ovo će bolje iskoristiti iznimke. Ako datoteka ne postoji kad se pokrene operacija brisanja - NoSuchFileException baciće API:

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

3. Uz Commons IO

Commons IO omogućuje nam kontrolu ponašanja izuzetaka prilikom brisanja datoteke. Za tiho brisanje koje guta sve moguće iznimke:

@Test javna praznina givenUsingCommonsIo_whenDeletingAFileV1_thenCorrect () baca IOException {FileUtils.touch (nova datoteka ("src / test / resources / fileToDelete_commonsIo.txt")); Datoteka fileToDelete = FileUtils.getFile ("src / test / resources / fileToDelete_commonsIo.txt"); logički uspjeh = FileUtils.deleteQuietly (fileToDelete); assertTrue (uspjeh); }

Imajte na umu da još uvijek možemo utvrditi je li operacija bila uspješna ili ne jednostavnim provjeravanjem povratne vrijednosti metode brisanja.

Sada - ako želimo da se izuzetak izbaci:

@Test public void givenUsingCommonsIo_whenDeletingAFileV2_thenCorrect () baca IOException {FileUtils.touch (nova datoteka ("src / test / resources / fileToDelete.txt")); FileUtils.forceDelete (FileUtils.getFile ("src / test / resources / fileToDelete.txt")); }

Ako datoteka koju želite izbrisati ne postoji u datotečnom sustavu, API će stvoriti standard FileNotFoundException:

java.io.FileNotFoundException: Datoteka ne postoji: srctestresourcesfileToDelete.txt na org.apache.commons.io.FileUtils.forceDelete (FileUtils.java:2275)

I eto vam - 4 jednostavna načina za brisanje datoteke na Javi.


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