Java OutputStreamWriter (Dengan Contoh)

Dalam tutorial ini, kita akan belajar mengenai Java OutputStreamWriter dan kaedahnya dengan bantuan contoh.

The OutputStreamWritergolongan orang java.iopakej boleh digunakan untuk data convert dalam bentuk watak ke dalam data dalam bentuk bait.

Ia meluaskan kelas abstrak Writer.

The OutputStreamWriterkelas bekerja dengan aliran output lain. Ia juga dikenali sebagai jambatan antara aliran bait dan aliran watak. Ini kerana OutputStreamWritermenukar 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.OutputStreamWriterpakej 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 OutputStreamWriteroutput bernama bersama dengan FileOutputStreamfail 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 Charsetkelas untuk menentukan jenis pengekodan watak.

Kaedah OutputStreamWriter

The OutputStreamWriterkelas menyediakan pelaksanaan untuk kaedah yang berbeza hadir dalam Writerkelas.

tulis () Kaedah

  • write() - menulis watak tunggal kepada penulis
  • write(char() array) - menulis watak dari susunan yang ditentukan untuk penulis
  • write(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).

Artikel menarik...