Java - Menambahkan Data ke File

1. Perkenalan

Dalam tutorial singkat ini, kita akan melihat bagaimana kita menggunakan Java untuk menambahkan data ke konten file - dalam beberapa cara sederhana.

Mari kita mulai dengan bagaimana kita dapat melakukan ini menggunakan FileWriter Java inti .

2. Menggunakan FileWriter

Berikut adalah tes sederhana - membaca file yang ada, menambahkan beberapa teks, dan kemudian memastikan bahwa telah ditambahkan dengan benar:

@Test public void whenAppendToFileUsingFileWriter_thenCorrect() throws IOException { FileWriter fw = new FileWriter(fileName, true); BufferedWriter bw = new BufferedWriter(fw); bw.write("Spain"); bw.newLine(); bw.close(); assertThat(getStringFromInputStream( new FileInputStream(fileName))) .isEqualTo("UK\r\n" + "US\r\n" + "Germany\r\n" + "Spain\r\n"); }

Perhatikan bahwa konstruktor FileWriter menerima tanda boolean jika kita ingin menambahkan data ke file yang sudah ada.

Jika kita set ke false, maka konten yang ada akan diganti.

3. Menggunakan FileOutputStream

Selanjutnya - mari kita lihat bagaimana kita dapat melakukan operasi yang sama - menggunakan FileOutputStream :

@Test public void whenAppendToFileUsingFileOutputStream_thenCorrect() throws Exception { FileOutputStream fos = new FileOutputStream(fileName, true); fos.write("Spain\r\n".getBytes()); fos.close(); assertThat(StreamUtils.getStringFromInputStream( new FileInputStream(fileName))) .isEqualTo("UK\r\n" + "US\r\n" + "Germany\r\n" + "Spain\r\n"); }

Demikian pula, konstruktor FileOutputStream menerima boolean yang harus disetel ke true untuk menandai bahwa kita ingin menambahkan data ke file yang sudah ada.

4. Menggunakan java.nio.file

Selanjutnya - kita juga dapat menambahkan konten ke file menggunakan fungsionalitas di java.nio.file - yang diperkenalkan di JDK 7:

@Test public void whenAppendToFileUsingFiles_thenCorrect() throws IOException { String contentToAppend = "Spain\r\n"; Files.write( Paths.get(fileName), contentToAppend.getBytes(), StandardOpenOption.APPEND); assertThat(StreamUtils.getStringFromInputStream( new FileInputStream(fileName))) .isEqualTo("UK\r\n" + "US\r\n" + "Germany\r\n" + "Spain\r\n"); }

5. Menggunakan Jambu Biji

Untuk mulai menggunakan Guava, kita perlu menambahkan dependensinya ke pom.xml kita :

 com.google.guava guava 23.0 

Sekarang, mari kita lihat bagaimana kita bisa mulai menggunakan Guava untuk menambahkan konten ke file yang sudah ada:

@Test public void whenAppendToFileUsingFileWriter_thenCorrect() throws IOException { File file = new File(fileName); CharSink chs = Files.asCharSink( file, Charsets.UTF_8, FileWriteMode.APPEND); chs.write("Spain\r\n"); assertThat(StreamUtils.getStringFromInputStream( new FileInputStream(fileName))) .isEqualTo("UK\r\n" + "US\r\n" + "Germany\r\n" + "Spain\r\n"); }

6. Menggunakan Apache Commons IO FileUtils

Terakhir - mari kita lihat bagaimana kita dapat menambahkan konten ke file yang sudah ada menggunakan Apache Commons IO FileUtils .

Pertama, mari tambahkan dependensi Apache Commons IO ke pom.xml kami :

 commons-io commons-io 2.6 

Sekarang, mari kita lihat contoh cepat yang mendemonstrasikan penambahan konten ke file yang sudah ada menggunakan FileUtils :

@Test public void whenAppendToFileUsingFiles_thenCorrect() throws IOException { File file = new File(fileName); FileUtils.writeStringToFile( file, "Spain\r\n", StandardCharsets.UTF_8, true); assertThat(StreamUtils.getStringFromInputStream( new FileInputStream(fileName))) .isEqualTo("UK\r\n" + "US\r\n" + "Germany\r\n" + "Spain\r\n"); }

7. Kesimpulan

Di artikel ini, kami telah melihat bagaimana kami dapat menambahkan konten dengan berbagai cara.

Implementasi lengkap dari tutorial ini dapat ditemukan di GitHub.