Java BufferedOutputStream (Dengan Contoh)

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

The BufferedOutputStreamgolongan orang java.iopakej digunakan dengan aliran output lain untuk menulis data (dalam bait) dengan lebih cekap.

Ia meluaskan OutputStreamkelas abstrak.

Bekerja BufferedOutputStream

Ini BufferedOutputStreammengekalkan penyangga dalaman 8192 bait .

Semasa operasi menulis, bait ditulis ke penyangga dalaman dan bukannya cakera. Setelah penyangga diisi atau aliran ditutup, keseluruhan penyangga ditulis ke cakera.

Oleh itu, bilangan komunikasi ke cakera dikurangkan. Inilah sebabnya mengapa penulisan bait lebih pantas digunakan BufferedOutputStream.

Buat BufferedOutputStream

Untuk membuat BufferedOutputStream, kita mesti mengimport java.io.BufferedOutputStreampakej terlebih dahulu. Sebaik sahaja kami mengimport pakej di sini adalah bagaimana kita dapat membuat aliran output.

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 

Dalam contoh di atas, kami telah membuat BufferdOutputStreambuffer bernama dengan FileOutputStreamfile bernama.

Di sini, penyangga dalaman mempunyai ukuran lalai 8192 bait. Namun, kita dapat menentukan ukuran penyangga dalaman juga.

 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 

Penyangga akan membantu menulis bait ke fail dengan lebih cepat.

Kaedah BufferedOutputStream

The BufferedOutputStreamkelas menyediakan pelaksanaan kaedah yang berbeza dalam OutputStreamkelas.

tulis () Kaedah

  • write() - menulis satu bait ke penyangga dalaman aliran output
  • write(byte() array) - menulis bait dari array yang ditentukan ke aliran output
  • write(byte() arr, int start, int length) - menulis bilangan bait sama dengan panjang ke aliran output dari array yang bermula dari kedudukan permulaan

Contoh: BufferedOutputStream untuk menulis data ke Fail

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; 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 a BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte() array = data.getBytes(); // Writes data to the output stream output.write(array); output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Dalam contoh di atas, kami telah membuat aliran output buffered bernama output bersama FileOutputStream. Aliran output dihubungkan dengan file output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(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. 

Catatan : getBytes()Kaedah yang digunakan dalam program mengubah rentetan menjadi array byte.

kaedah siram ()

Untuk membersihkan penyangga dalaman, kita dapat menggunakan flush()kaedahnya. Kaedah ini memaksa aliran output untuk menulis semua data yang ada dalam penyangga ke fail tujuan. Sebagai contoh,

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(" flush.txt"); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); // Writes data to the output stream buffer.write(data.getBytes()); // Flushes data to the destination buffer.flush(); System.out.println("Data is flushed to the file."); buffer.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Pengeluaran

 Data dialirkan ke fail. 

Semasa kita menjalankan program, file flush.txt diisi dengan teks yang diwakili oleh data rentetan.

tutup () Kaedah

Untuk menutup aliran output yang disangga, kita dapat menggunakan close()kaedahnya. Setelah kaedah dipanggil, kita tidak dapat menggunakan aliran output untuk menulis data.

Untuk mengetahui lebih lanjut, lawati Java BufferedOutputStream (dokumentasi Java rasmi).

Artikel menarik...