Dalam tutorial ini, kita akan belajar mengenai Java OutputStreamWriter dan kaedahnya dengan bantuan contoh.
The OutputStreamWriter
golongan orang java.io
pakej boleh digunakan untuk data convert dalam bentuk watak ke dalam data dalam bentuk bait.
Ia meluaskan kelas abstrak Writer
.
The OutputStreamWriter
kelas bekerja dengan aliran output lain. Ia juga dikenali sebagai jambatan antara aliran bait dan aliran watak. Ini kerana OutputStreamWriter
menukar wataknya menjadi bait.
Contohnya, sebilangan watak memerlukan 2 bait disimpan di tempat simpanan. Untuk menulis data tersebut, kita dapat menggunakan penulis aliran output yang mengubah watak menjadi bait yang sesuai dan menyimpan bait bersama-sama.
Buat OutputStreamWriter
Untuk membuat OutputStreamWriter
, kita mesti mengimport java.io.OutputStreamWriter
pakej terlebih dahulu. Sebaik sahaja kita mengimport pakej di sini adalah bagaimana kita dapat membuat penulis aliran output.
// Creates an OutputStream FileOutputStream file = new FileOutputStream(String path); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
Dalam contoh di atas, kami telah membuat OutputStreamWriter
output bernama bersama dengan FileOutputStream
fail bernama.
Di sini, kami menggunakan pengekodan watak lalai untuk menulis watak ke aliran output.
Walau bagaimanapun, kita dapat menentukan jenis pengekodan karakter ( UTF8 atau UTF16 ) yang akan digunakan untuk menulis data.
// Creates an OutputStreamWriter specifying the character encoding OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
Di sini, kami telah menggunakan Charset
kelas untuk menentukan jenis pengekodan watak.
Kaedah OutputStreamWriter
The OutputStreamWriter
kelas menyediakan pelaksanaan untuk kaedah yang berbeza hadir dalam Writer
kelas.
tulis () Kaedah
write()
- menulis watak tunggal kepada penuliswrite(char() array)
- menulis watak dari susunan yang ditentukan untuk penuliswrite(String data)
- menulis rentetan yang ditentukan kepada penulis
Contoh: OutputStreamWriter untuk menulis data ke Fail
import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class Main ( public static void main(String args()) ( String data = "This is a line of text inside the file."; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); // Writes string to the file output.write(data); // Closes the writer output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Dalam contoh di atas, kami telah membuat pembaca aliran output menggunakan aliran output fail. Pembaca aliran output dihubungkan dengan fail output.txt .
FileOutputStream file = new FileOutputStream("output.txt"); OutputStreamWriter output = new OutputStreamWriter(file);
Untuk menulis data ke fail, kami telah menggunakan write()
kaedahnya.
Di sini, semasa kita menjalankan program, fail output.txt diisi dengan kandungan berikut.
This is a line of text inside the file.
kaedah getEncoding ()
The getEncoding()
kaedah boleh digunakan untuk mendapatkan jenis pengekodan yang digunakan untuk data tulis ke aliran output. Sebagai contoh,
import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.io.FileOutputStream; class Main ( public static void main(String() args) ( try ( // Creates an output stream FileOutputStream file = new FileOutputStream("output.txt"); // Creates an output stream reader with default encoding OutputStreamWriter output1 = new OutputStreamWriter(file); // Creates an output stream reader specifying the encoding OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8")); // Returns the character encoding of the output stream System.out.println("Character encoding of output1: " + output1.getEncoding()); System.out.println("Character encoding of output2: " + output2.getEncoding()); // Closes the reader output1.close(); output2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Pengeluaran
Pengekodan watak output1: Cp1252 Pengekodan watak output2: UTF8
Dalam contoh di atas, kami telah membuat 2 penulis aliran output bernama output1 dan output2.
- output1 tidak menentukan pengekodan watak. Oleh itu
getEncoding()
kaedah mengembalikan pengekodan watak lalai. - output2 menentukan pengekodan watak, UTF8 . Oleh itu
getEncoding()
kaedah mengembalikan pengekodan watak yang ditentukan.
Catatan : Kami telah menggunakan Charset.forName()
kaedah untuk menentukan jenis pengekodan watak. Untuk mengetahui lebih lanjut, lawati Java Charset (dokumentasi Java rasmi).
tutup () Kaedah
Untuk menutup penulis aliran output, kita boleh menggunakan close()
kaedahnya. Setelah close()
kaedah dipanggil, kita tidak dapat menggunakan penulis untuk menulis data.
Kaedah lain OutputStreamWriter
Kaedah | Penerangan |
---|---|
flush() | memaksa untuk menulis semua data yang ada pada penulis ke destinasi yang sesuai |
append() | memasukkan watak yang ditentukan kepada penulis semasa |
Untuk mengetahui lebih lanjut, lawati Java OutputStreamWriter (dokumentasi Java rasmi).