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.