FileWriter Java

1. Ikhtisar

Dalam tutorial ini, kita akan belajar dan memahami kelas FileWriter yang ada dalam paket java.io.

2. FileWriter

FileWriter adalah OutputStreamWriter khusus untuk menulis file karakter . Itu tidak mengekspos operasi baru tetapi bekerja dengan operasi yang diwarisi dari kelas OutputStreamWriter dan Writer .

Hingga Java 11, FileWriter bekerja dengan pengkodean karakter default dan ukuran buffer byte default. Namun, Java 11 memperkenalkan empat konstruktor baru yang menerima Charset, sehingga memungkinkan Charset yang ditentukan pengguna . Sayangnya, kami masih tidak dapat mengubah ukuran buffering byte, dan ini disetel ke 8192.

2.1. Membuat instance FileWriter

Ada lima konstruktor di kelas FileWriter jika kita menggunakan versi Java sebelum Java 11.

Mari kita lihat berbagai konstruktor:

public FileWriter(String fileName) throws IOException { super(new FileOutputStream(fileName)); } public FileWriter(String fileName, boolean append) throws IOException { super(new FileOutputStream(fileName, append)); } public FileWriter(File file) throws IOException { super(new FileOutputStream(file)); } public FileWriter(File file, boolean append) throws IOException { super(new FileOutputStream(file, append)); } public FileWriter(FileDescriptor fd) { super(new FileOutputStream(fd)); }

Java 11 memperkenalkan empat konstruktor tambahan:

public FileWriter(String fileName, Charset charset) throws IOException { super(new FileOutputStream(fileName), charset); } public FileWriter(String fileName, Charset charset, boolean append) throws IOException { super(new FileOutputStream(fileName, append), charset); } public FileWriter(File file, Charset charset) throws IOException { super(new FileOutputStream(file), charset); } public FileWriter(File file, Charset charset, boolean append) throws IOException { super(new FileOutputStream(file, append), charset); }

2.2. Menulis String ke File

Sekarang mari gunakan salah satu konstruktor FileWriter untuk membuat instance FileWriter dan kemudian menulis ke file:

try (FileWriter fileWriter = new FileWriter("src/test/resources/FileWriterTest.txt")) { fileWriter.write("Hello Folks!"); }

Kami telah menggunakan konstruktor argumen tunggal dari FileWriter yang menerima nama file. Kami kemudian menggunakan operasi tulis (String str) yang diwarisi dari kelas Writer . Karena FileWriter adalah AutoCloseable , kami telah menggunakan try-with-resources sehingga kami tidak harus menutup FileWriter secara eksplisit .

Saat menjalankan kode di atas, String akan ditulis ke file yang ditentukan:

Hello Folks!

The FileWriter tidak menjamin apakah file FileWriterTest.txt akan tersedia atau dibuat. Itu tergantung pada platform yang mendasarinya.

Kami juga harus membuat catatan bahwa platform tertentu hanya mengizinkan satu instance FileWriter untuk membuka file. Dalam hal ini, konstruktor lain dari kelas FileWriter akan gagal jika file yang terlibat sudah terbuka.

2.3. Menambahkan String ke File

Kami sering perlu menambahkan data ke konten file yang ada. Sekarang mari kita lihat contoh FileWriter yang mendukung penambahan:

try (FileWriter fileWriter = new FileWriter("src/test/resources/FileWriterTest.txt", true)) { fileWriter.write("Hello Folks Again!"); }

Seperti yang kita lihat, kita telah menggunakan konstruktor dua argumen yang menerima nama file dan boolean bendera append . Meneruskan flag append as true membuat FileWriter yang memungkinkan kita untuk menambahkan teks ke konten file yang ada .

Saat menjalankan kode, kita akan menambahkan String ke konten yang ada dari file yang ditentukan:

Hello Folks!Hello Folks Again! 

3. Kesimpulan

Pada artikel ini, kita belajar tentang kelas praktis FileWriter dan beberapa cara untuk membuat FileWriter . Kami kemudian menggunakannya untuk menulis data ke file.

Seperti biasa, kode sumber lengkap untuk tutorial tersedia di GitHub.