Dalam tutorial ini, kita akan belajar mengenai Java BufferedOutputStream dan kaedahnya dengan bantuan contoh.
The BufferedOutputStream
golongan orang java.io
pakej digunakan dengan aliran output lain untuk menulis data (dalam bait) dengan lebih cekap.
Ia meluaskan OutputStream
kelas abstrak.
Bekerja BufferedOutputStream
Ini BufferedOutputStream
mengekalkan 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.BufferedOutputStream
pakej 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 BufferdOutputStream
buffer bernama dengan FileOutputStream
file 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 BufferedOutputStream
kelas menyediakan pelaksanaan kaedah yang berbeza dalam OutputStream
kelas.
tulis () Kaedah
write()
- menulis satu bait ke penyangga dalaman aliran outputwrite(byte() array)
- menulis bait dari array yang ditentukan ke aliran outputwrite(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).