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.