Java - Adatok csatolása egy fájlhoz

1. Bemutatkozás

Ebben a gyors bemutatóban megnézhetjük, hogyan használjuk a Java-t az adatok fájlfájlokhoz történő hozzáfűzéséhez - néhány egyszerű módon.

Kezdjük azzal, hogy ezt hogyan tehetjük meg az alapvető Java-k segítségével FileWriter.

2. Használata FileWriter

Itt van egy egyszerű teszt - egy létező fájl elolvasása, szöveg hozzáfűzése, majd a megfelelő csatolás:

@Test public void, amikorAppendToFileUsingFileWriter_thenCorrect () az IOException-t dobja {FileWriter fw = new FileWriter (fájlnév, igaz); BufferedWriter bw = új BufferedWriter (fw); bw.write ("Spanyolország"); bw.newLine (); bw.close (); assertThat (getStringFromInputStream (új FileInputStream (fájlnév))) .isEqualTo ("UK \ r \ n" + "US \ r \ n" + "Németország \ r \ n" + "Spanyolország \ r \ n"); }

Vegye figyelembe, hogy FileWriter konstruktor elfogadja a logikai jelölés, ha adatokat szeretnénk csatolni egy meglévő fájlhoz.

Ha azt állítjuk hamis, akkor a meglévő tartalom kicserélődik.

3. Használata FileOutputStream

Ezután - nézzük meg, hogyan tudjuk elvégezni ugyanazt a műveletet - FileOutputStream:

@Test public void, amikorAppendToFileUsingFileOutputStream_thenCorrect () kiveti a {FileOutputStream fos = new FileOutputStream (fileName, true) kivételt; fos.write ("Spanyolország \ r \ n" .getBytes ()); fos.close (); assertThat (StreamUtils.getStringFromInputStream (új FileInputStream (fájlnév))) .isEqualTo ("UK \ r \ n" + "US \ r \ n" + "Németország \ r \ n" + "Spanyolország \ r \ n"); }

Hasonlóképpen a FileOutputStream A konstruktor elfogad egy logikai értéket, amelyet igazra kell állítani annak jelölésére, hogy az adatokat egy meglévő fájlhoz szeretnénk csatolni.

4. Használata java.nio.file

Következő - tartalmat is csatolhatunk a fájlokhoz a java.nio.file - amelyet a JDK 7-ben vezettek be:

@Test public void, amikorAAppendToFileUsingFiles_thenCorrect () dobja az IOException {String contentToAppend = "Spanyolország \ r \ n"; Files.write (Útvonalak.get (fájlnév), contentToAppend.getBytes (), StandardOpenOption.APPEND); assertThat (StreamUtils.getStringFromInputStream (új FileInputStream (fájlnév))) .isEqualTo ("UK \ r \ n" + "US \ r \ n" + "Németország \ r \ n" + "Spanyolország \ r \ n"); }

5. Guava használata

A Guava használatának megkezdéséhez hozzá kell adnunk függőségét a miénkhez pom.xml:

 com.google.guava guava 23.0 

Most nézzük meg, hogyan kezdhetjük el a Guava használatát tartalom hozzáfűzéséhez egy meglévő fájlhoz:

@Test public void, amikorAppendToFileUsingFileWriter_thenCorrect () dobja az IOException {File file = new File (fileName); CharSink chs = Files.asCharSink (fájl, Charsets.UTF_8, FileWriteMode.APPEND); chs.write ("Spanyolország \ r \ n"); assertThat (StreamUtils.getStringFromInputStream (új FileInputStream (fájlnév))) .isEqualTo ("UK \ r \ n" + "US \ r \ n" + "Németország \ r \ n" + "Spanyolország \ r \ n"); }

6. Az Apache Commons IO használata FileUtils

Végül - nézzük meg, hogyan csatolhatunk tartalmat egy meglévő fájlhoz az Apache Commons IO használatával FileUtils.

Először adjuk hozzá az Apache Commons IO függőséget a sajátunkhoz pom.xml:

 commons-io commons-io 2.6 

Most nézzünk meg egy gyors példát, amely bemutatja a tartalom hozzáfűzését egy meglévő fájlhoz FileUtils:

@Test public void, amikorAppendToFileUsingFiles_thenCorrect () dobja az IOException {File file = new File (fileName); FileUtils.writeStringToFile (fájl, "Spanyolország \ r \ n", StandardCharsets.UTF_8, igaz); assertThat (StreamUtils.getStringFromInputStream (új FileInputStream (fájlnév))) .isEqualTo ("UK \ r \ n" + "US \ r \ n" + "Németország \ r \ n" + "Spanyolország \ r \ n"); }

7. Következtetés

Ebben a cikkben azt láttuk, hogy hogyan lehet a tartalmat többféleképpen is hozzáfűzni.

Az oktatóanyag teljes megvalósítása megtalálható a GitHub oldalon.