Java - vytvorenie súboru

1. Prehľad

V tomto rýchlom výučbe sa naučíme, ako vytvoriť nový súbor v Jave - najskôr pomocou Súbory a Cesta triedy z NIO, potom Java Súbor a FileOutputStream triedy, Google Guava a nakoniec knižnica Apache Commons IO.

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

2. Inštalácia

V príkladoch definujeme konštantu pre názov súboru:

súkromný konečný reťazec FILE_NAME = "src / test / resources / fileToCreate.txt";

A tiež pridáme krok vyčistenia, aby sme sa uistili, že súbor ešte neexistuje pred každým testom, a aby sme ho odstránili po každom spustení testu:

@AfterEach @BeforeEach public void cleanUpFiles () {File targetFile = nový súbor (FILE_NAME); targetFile.delete (); }

3. Používanie NIO Files.createFile ()

Začnime tým pomocou Files.createFile () metóda z balíka Java NIO:

@ Test public void givenUsingNio_whenCreatingFile_thenCorrect () vyvolá IOException {Path newFilePath = Paths.get (FILE_NAME); Files.createFile (newFilePath); }

Ako vidíte, kód je stále veľmi jednoduchý; teraz používame nové Cesta rozhranie namiesto starého Súbor.

Tu si treba uvedomiť jednu vec, že ​​nové API dobre využíva výnimky. Ak súbor už existuje, už nemusíme kontrolovať návratový kód. Namiesto toho dostaneme a FileAlreadyExistsException:

java.nio.file.FileAlreadyExistsException: src / test / resources / fileToCreate.txt na sun.n.f.WindowsException.translateToIOException (WindowsException.java:81)

4. Použitím File.createNewFile ()

Pozrime sa teraz na to, ako môžeme urobiť to isté pomocou java.io.Súbor trieda:

@Test public void givenUsingFile_whenCreatingFile_thenCorrect () hodí IOException {File newFile = new File (FILE_NAME); boolean success = newFile.createNewFile (); assertTrue (úspech); }

Upozorňujeme, že súbor nesmie existovať, aby bola táto operácia úspešná. Ak súbor existuje, potom createNewFile () operácia vráti hodnotu false.

5. Používanie FileOutputStream

Ďalším spôsobom, ako vytvoriť nový súbor, je Použi java.io.FileOutputStream:

@Test public void givenUsingFileOutputStream_whenCreatingFile_thenCorrect () vyvolá IOException {try (FileOutputStream fileOutputStream = nový FileOutputStream (FILE_NAME)) {}}

V takom prípade sa vytvorí nový súbor, keď vytvoríme inštanciu FileOutputStream objekt. Ak súbor s krstným menom už existuje, bude prepísaný. Ak je však existujúci súbor adresárom alebo z akéhokoľvek dôvodu nemožno vytvoriť nový súbor, dostaneme a FileNotFoundException.

Ďalej upozorňujeme, že sme použili a vyskúšajte zdroje vyhlásenie - uistite sa, že je stream správne uzavretý.

6. Používanie Guavy

Riešenie Guava na vytvorenie nového súboru je tiež rýchla línia:

@Test public void givenUsingGuava_whenCreatingFile_thenCorrect () hodí IOException {com.google.common.io.Files.touch (nový súbor (FILE_NAME)); }

7. Používanie Apache Commons IO

Knižnica Apache Commons poskytuje FileUtils.touch () metóda, ktorá implementuje rovnaké správanie ako „dotknúť sa”Utilita v Linuxe.

Preto vytvorí nový prázdny súbor alebo dokonca súbor a úplnú cestu k nemu v súborovom systéme:

@Test public void givenUsingCommonsIo_whenCreatingFile_thenCorrect () hodí IOException {FileUtils.touch (nový súbor (FILE_NAME)); }

Toto sa chová trochu inak ako v predchádzajúcich príkladoch: ak súbor už existuje, operácia nezlyhá, jednoducho nič neurobí.

A máme to - 4 rýchle spôsoby, ako vytvoriť nový súbor v Jave.

8. Záver

V tomto článku sme sa pozreli na rôzne riešenia pre vytvorenie súboru v Jave. Použili sme triedy, ktoré sú súčasťou JDK a externých knižníc.

Kód príkladov je k dispozícii na GitHub.


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