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.


$config[zx-auto] not found$config[zx-overlay] not found