Java - Hozzon létre egy fájlt

1. Áttekintés

Ebben a gyors bemutatóban megtanuljuk, hogyan hozhat létre új fájlt a Java-ban - először a Fájlok és Pálya osztályok a NIO-tól, majd a Java File és FileOutputStream osztályok, a Google Guava és végül az Apache Commons IO könyvtár.

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

2. Beállítás

A példákban meghatározunk egy állandó értéket a fájlnévhez:

privát végső karakterlánc FILE_NAME = "src / test / resources / fileToCreate.txt";

Ezenkívül hozzáadunk egy megtisztítási lépést, hogy megbizonyosodjunk arról, hogy a fájl még nem létezik minden teszt előtt, és töröljük azt minden teszt futtatása után:

@AfterEach @BeforeEach public void cleanUpFiles () {File targetFile = new File (FILE_NAME); targetFile.delete (); }

3. A NIO használata Files.createFile ()

Kezdjük azzal használni a Files.createFile () módszer a Java NIO csomagból:

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

Mint látható, a kód még mindig nagyon egyszerű; most az újat használjuk Pálya felület a régi helyett File.

Egy dolgot érdemes megjegyezni, hogy az új API jól használja a kivételeket. Ha a fájl már létezik, akkor már nem kell ellenőriznünk egy visszatérési kódot. Ehelyett kapunk egy FileAlreadyExistsException:

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

4. Használata File.createNewFile ()

Most nézzük meg, hogyan tehetnénk ugyanezt használni a java.io.Fájl osztály:

@Test public void givenUsingFile_whenCreatingFile_thenCorrect () dobja az IOException {File newFile = new File (FILE_NAME) fájlt; logikai siker = newFile.createNewFile (); assertTrue (siker); }

Vegye figyelembe, hogy a fájlnak nem létezhet a művelet sikeres végrehajtásához. Ha a fájl létezik, akkor a createNewFile () művelet hamis értéket ad vissza.

5. Használata FileOutputStream

Az új fájl létrehozásának másik módja a használja a java.io.FileOutputStream:

@Test public void givenUsingFileOutputStream_whenCreatingFile_thenCorrect () dobja az IOException {try (FileOutputStream fileOutputStream = new FileOutputStream (FILE_NAME)) {}}

Ebben az esetben egy új fájl jön létre, amikor a FileOutputStream tárgy. Ha egy fájl egy névvel már létezik, felül fogják írni. Ha azonban a meglévő fájl könyvtár, vagy bármilyen okból nem lehet új fájlt létrehozni, akkor a FileNotFoundException.

Ezenkívül vegye figyelembe, hogy a erőforrásokkal próbálkozzon utasítás - annak biztosítása, hogy az adatfolyam megfelelően zárva legyen.

6. Guava használata

Az új fájl létrehozására szolgáló guavai megoldás egy gyors egyvonalas is:

@Test public void givenUsingGuava_whenCreatingFile_thenCorrect () dobja az IOException {com.google.common.io.Files.touch (új fájl (FILE_NAME)); }

7. Az Apache Commons IO használata

Az Apache Commons könyvtár biztosítja a FileUtils.touch () módszer, amely ugyanazt a viselkedést valósítja meg, mint aérintés”Segédprogram Linux alatt.

Ezért létrehoz egy új üres fájlt vagy akár egy fájlt, és annak teljes elérési útját a fájlrendszerben:

@Test public void givenUsingCommonsIo_whenCreatingFile_thenCorrect () dobja az IOException {FileUtils.touch (új fájl (FILE_NAME)); }

Vegye figyelembe, hogy ez kissé eltérően viselkedik, mint az előző példák: ha a fájl már létezik, akkor a művelet nem bukik meg, egyszerűen nem csinál semmit.

És itt van - 4 gyors módszer új fájl létrehozására a Java-ban.

8. Következtetés

Ebben a cikkben különféle megoldásokat vizsgáltunk egy fájl Java-ban történő létrehozására. Olyan osztályokat használtunk, amelyek a JDK részét képezik, és külső könyvtárakat.

A példák kódja elérhető a GitHub oldalon.