Java BufferedOutputStream (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang Java BufferedOutputStream dan metodenya dengan bantuan contoh.

The BufferedOutputStreamkelas dari java.iopaket digunakan dengan aliran output lainnya untuk menulis data (dalam byte) yang lebih efisien.

Ini memperluas OutputStreamkelas abstrak.

Cara Kerja BufferedOutputStream

The BufferedOutputStreammempertahankan internal penyangga 8192 byte .

Selama operasi tulis, byte ditulis ke buffer internal, bukan ke disk. Setelah buffer terisi atau aliran ditutup, seluruh buffer ditulis ke disk.

Karenanya, jumlah komunikasi ke disk berkurang. Inilah sebabnya mengapa menulis byte lebih cepat digunakan BufferedOutputStream.

Buat BufferedOutputStream

Untuk membuat BufferedOutputStream, kita harus mengimpor java.io.BufferedOutputStreampaketnya terlebih dahulu. Setelah kami mengimpor paket di sini adalah bagaimana kami dapat membuat aliran keluaran.

 // 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, buffer internal memiliki ukuran default 8192 byte. Namun, kami juga dapat menentukan ukuran buffer internal.

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

Buffer akan membantu menulis byte ke file lebih cepat.

Metode BufferedOutputStream

The BufferedOutputStreamkelas menyediakan implementasi untuk metode yang berbeda di OutputStreamkelas.

Write () Metode

  • write() - menulis satu byte ke buffer internal aliran keluaran
  • write(byte() array) - menulis byte dari larik yang ditentukan ke aliran keluaran
  • write(byte() arr, int start, int length) - menulis jumlah byte yang sama dengan panjang aliran keluaran dari larik mulai dari posisi awal

Contoh: BufferedOutputStream untuk menulis data ke File

 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 keluaran buffer bernama keluaran bersama dengan FileOutputStream. Output stream terkait dengan file output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 

Untuk menulis data ke file, kami menggunakan write()metode.

Di sini ketika kita menjalankan program, file output.txt diisi dengan konten berikut.

 This is a line of text inside the file. 

Catatan : getBytes()Metode yang digunakan dalam program ini mengubah string menjadi array byte.

Metode flush ()

Untuk menghapus buffer internal, kita dapat menggunakan flush()metode ini. Metode ini memaksa aliran keluaran untuk menulis semua data yang ada di buffer ke file 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(); ) ) ) 

Keluaran

 Data di-flush ke file. 

Saat kita menjalankan program, file flush.txt diisi dengan teks yang diwakili oleh data string.

close () Metode

Untuk menutup aliran keluaran buffer, kita bisa menggunakan close()metode. Setelah metode dipanggil, kita tidak dapat menggunakan aliran keluaran untuk menulis data.

Untuk mempelajari lebih lanjut, kunjungi Java BufferedOutputStream (dokumentasi resmi Java).

Artikel yang menarik...