Penulis Fail Java

1. Gambaran keseluruhan

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

2. Penulis Fail

FileWriter ialah khusus OutputStreamWriter untuk menulis fail watak . Ia tidak mendedahkan operasi baru tetapi berfungsi dengan operasi yang diwarisi dari kelas OutputStreamWriter dan Writer .

Sehingga Java 11, FileWriter bekerja dengan pengekodan watak lalai dan ukuran buffer bait lalai. Namun, Java 11 memperkenalkan empat pembangun baru yang menerima Charset, sehingga membolehkan Charset yang ditentukan pengguna . Sayangnya, kami masih tidak dapat mengubah ukuran buffer byte, dan ditetapkan ke 8192.

2.1. Mewujudkan kejadian yang FileWriter

Terdapat lima pembina dalam kelas FileWriter jika kita menggunakan versi Java sebelum Java 11.

Mari kita melihat pelbagai pembina:

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 pembina 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 Rentetan pada Fail

Sekarang mari kita gunakan salah satu pembina FileWriter untuk membuat contoh FileWriter dan kemudian menulis ke fail:

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

Kami telah menggunakan pembangun argumen tunggal dari FileWriter yang menerima nama fail. Kami kemudian menggunakan operasi tulis (String str) yang diwarisi dari kelas Writer . Oleh kerana FileWriter adalah AutoCloseable , kami telah menggunakan try-with-resources sehingga kami tidak perlu menutup FileWriter secara eksplisit .

Semasa melaksanakan kod di atas, String akan ditulis ke fail yang ditentukan:

Hello Folks!

The FileWriter tidak menjamin sama ada fail FileWriterTest.txt akan disediakan atau diwujudkan. Itu bergantung pada platform yang mendasari.

Kita juga mesti membuat catatan bahawa platform tertentu hanya membenarkan satu contoh FileWriter untuk membuka fail. Dalam kes tersebut, pembina lain dari kelas FileWriter akan gagal sekiranya fail yang terlibat sudah dibuka.

2.3. Menambah Rentetan ke Fail

Kita sering perlu menambahkan data ke kandungan fail yang ada. Sekarang mari kita lihat contoh FileWriter yang menyokong 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 fail dan lampiran boolean flag . Melewati bendera lampiran sebagai benar membuat FileWriter yang membolehkan kita menambahkan teks ke kandungan fail yang ada .

Semasa menjalankan kod, kita akan memasukkan String ke kandungan fail yang ada:

Hello Folks!Hello Folks Again! 

3. Kesimpulannya

Dalam artikel ini, kami belajar tentang kelas kemudahan FileWriter dan beberapa cara di mana FileWriter dapat dibuat. Kami kemudian menggunakannya untuk menulis data ke fail.

Seperti biasa, kod sumber lengkap untuk tutorial boleh didapati di GitHub.