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.