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.