Java - Pripojenie údajov k súboru
1. Úvod
V tomto rýchlom výučbe sa dozvieme, ako používame jazyk Java na pripájanie údajov k obsahu súboru - niekoľkými jednoduchými spôsobmi.
Začnime tým, ako to môžeme urobiť pomocou základných Java FileWriter.
2. Pomocou FileWriter
Tu je jednoduchý test - prečítať existujúci súbor, pridať nejaký text a potom skontrolovať, či bol správne pripojený:
@ Test public void whenAppendToFileUsingFileWriter_thenCorrect () vyvolá IOException {FileWriter fw = nový FileWriter (fileName, true); BufferedWriter bw = nový BufferedWriter (fw); bw.write ("Španielsko"); bw.newLine (); bw.close (); assertThat (getStringFromInputStream (nový FileInputStream (názov súboru))) .isEqualTo ("UK \ r \ n" + "US \ r \ n" + "Nemecko \ r \ n" + "Španielsko \ r \ n"); }
Poznač si to FileWriter konštruktér prijíma a boolovský označenie, ak chceme pripojiť údaje k existujúcemu súboru.
Keby sme to nastavili na nepravda, potom sa existujúci obsah nahradí.
3. Používanie FileOutputStream
Ďalej - pozrime sa, ako môžeme urobiť rovnakú operáciu - pomocou FileOutputStream:
@ Test public void whenAppendToFileUsingFileOutputStream_thenCorrect () vyvolá výnimku {FileOutputStream fos = nový FileOutputStream (názov súboru, pravda); fos.write ("Španielsko \ r \ n" .getBytes ()); fos.close (); assertThat (StreamUtils.getStringFromInputStream (nový FileInputStream (názov súboru))) .isEqualTo ("UK \ r \ n" + "USA \ r \ n" + "Nemecko \ r \ n" + "Španielsko \ r \ n"); }
Podobne FileOutputStream konštruktor akceptuje boolean, ktorý by mal byť nastavený na true, aby označil, že chceme pripojiť dáta k existujúcemu súboru.
4. Používanie java.nio.file
Ďalej - k súborom môžeme tiež pridať obsah pomocou funkcií v java.nio.file - ktorý bol predstavený v JDK 7:
@ Test public void whenAppendToFileUsingFiles_thenCorrect () vyvolá IOException {String contentToAppend = "Španielsko \ r \ n"; Files.write (Paths.get (názov súboru), contentToAppend.getBytes (), StandardOpenOption.APPEND); assertThat (StreamUtils.getStringFromInputStream (nový FileInputStream (názov súboru))) .isEqualTo ("UK \ r \ n" + "USA \ r \ n" + "Nemecko \ r \ n" + "Španielsko \ r \ n"); }
5. Používanie Guavy
Aby sme mohli začať používať Guavu, musíme jej závislosť pridať do našej pom.xml:
com.google.guava guava 23.0
Teraz sa pozrime, ako môžeme začať používať program Guava na pridávanie obsahu k existujúcemu súboru:
@ Test public void whenAppendToFileUsingFileWriter_thenCorrect () vyvolá IOException {File file = new File (fileName); CharSink chs = Files.asCharSink (súbor, Charsets.UTF_8, FileWriteMode.APPEND); chs.write ("Španielsko \ r \ n"); assertThat (StreamUtils.getStringFromInputStream (nový FileInputStream (názov súboru))) .isEqualTo ("UK \ r \ n" + "USA \ r \ n" + "Nemecko \ r \ n" + "Španielsko \ r \ n"); }
6. Používanie Apache Commons IO FileUtils
Na záver - pozrime sa, ako môžeme pripojiť obsah k existujúcemu súboru pomocou Apache Commons IO FileUtils.
Najskôr do našej pridajme závislosť Apache Commons IO pom.xml:
commons-io commons-io 2.6
Teraz sa pozrime na rýchly príklad, ktorý demonštruje pripojenie obsahu k existujúcemu súboru pomocou FileUtils:
@ Test public void whenAppendToFileUsingFiles_thenCorrect () vyvolá IOException {File file = new File (fileName); FileUtils.writeStringToFile (súbor, "Španielsko \ r \ n", StandardCharsets.UTF_8, pravda); assertThat (StreamUtils.getStringFromInputStream (nový FileInputStream (názov súboru))) .isEqualTo ("UK \ r \ n" + "USA \ r \ n" + "Nemecko \ r \ n" + "Španielsko \ r \ n"); }
7. Záver
V tomto článku sme videli, ako môžeme pripojiť obsah viacerými spôsobmi.
Celú implementáciu tohto tutoriálu nájdete na GitHub.