Java - dodavanje podataka u datoteku

1. Uvod

U ovom brzom uputstvu vidjet ćemo kako koristimo Javu za dodavanje podataka sadržaju datoteke - na nekoliko jednostavnih načina.

Počnimo s tim kako to možemo učiniti pomoću jezgre Java FileWriter.

2. Korištenje FileWriter

Evo jednostavnog testa - čitanje postojeće datoteke, dodavanje dijela teksta, a zatim provjera je li to ispravno dodano:

@Test public void whenAppendToFileUsingFileWriter_thenCorrect () baca IOException {FileWriter fw = new FileWriter (fileName, true); BufferedWriter bw = novi BufferedWriter (fw); bw.write ("Španjolska"); bw.newLine (); bw.close (); assertThat (getStringFromInputStream (new FileInputStream (fileName))).. isEqualTo ("UK \ r \ n" + "US \ r \ n" + "Njemačka \ r \ n" + "Španjolska \ r \ n"); }

Imajte na umu da FileWriter's konstruktor prihvaća a boolean označavanje ako podatke želimo dodati postojećoj datoteci.

Ako ga postavimo na lažno, tada će se postojeći sadržaj zamijeniti.

3. Korištenje FileOutputStream

Dalje - da vidimo kako možemo izvršiti istu operaciju - pomoću FileOutputStream:

@Test public void whenAppendToFileUsingFileOutputStream_thenCorrect () baca iznimku {FileOutputStream fos = new FileOutputStream (fileName, true); fos.write ("Španjolska \ r \ n" .getBytes ()); fos.close (); assertThat (StreamUtils.getStringFromInputStream (new FileInputStream (fileName))).. }

Slično tome, FileOutputStream konstruktor prihvaća logičku vrijednost koja bi trebala biti postavljena na true da označi da želimo dodati podatke u postojeću datoteku.

4. Korištenje java.nio.file

Dalje - također možemo dodavati sadržaj datotekama koristeći funkcije u sustavu Windows java.nio.file - koji je uveden u JDK 7:

@Test public void whenAppendToFileUsingFiles_thenCorrect () baca IOException {String contentToAppend = "Španjolska \ r \ n"; Files.write (Paths.get (fileName), contentToAppend.getBytes (), StandardOpenOption.APPEND); assertThat (StreamUtils.getStringFromInputStream (new FileInputStream (fileName))).. }

5. Korištenje Guave

Da bismo počeli koristiti Guavu, moramo dodati njezinu ovisnost o našoj pom.xml:

 com.google.guava guava 23.0 

Sada, da vidimo kako možemo početi koristiti Guavu za dodavanje sadržaja postojećoj datoteci:

@Test public void whenAppendToFileUsingFileWriter_thenCorrect () baca IOException {File file = new File (fileName); CharSink chs = Files.asCharSink (datoteka, Charsets.UTF_8, FileWriteMode.APPEND); chs.write ("Španjolska \ r \ n"); assertThat (StreamUtils.getStringFromInputStream (new FileInputStream (fileName))).. }

6. Korištenje Apache Commons IO FileUtils

Napokon - pogledajmo kako možemo dodati sadržaj postojećoj datoteci pomoću Apache Commons IO FileUtils.

Prvo, dodajmo ovisnost Apache Commons IO našoj pom.xml:

 commons-io commons-io 2.6 

Pogledajmo sada brzi primjer koji pokazuje dodavanje sadržaja postojećoj datoteci pomoću FileUtils:

@Test public void whenAppendToFileUsingFiles_thenCorrect () baca IOException {File file = new File (fileName); FileUtils.writeStringToFile (datoteka, "Španjolska \ r \ n", StandardCharsets.UTF_8, točno); assertThat (StreamUtils.getStringFromInputStream (new FileInputStream (fileName))).. }

7. Zaključak

U ovom smo članku vidjeli kako možemo dodati sadržaj na više načina.

Potpuna implementacija ovog vodiča može se naći na GitHubu.