Dalam tutorial ini, kita akan belajar tentang Java BufferedOutputStream dan metodenya dengan bantuan contoh.
The BufferedOutputStream
kelas dari java.io
paket digunakan dengan aliran output lainnya untuk menulis data (dalam byte) yang lebih efisien.
Ini memperluas OutputStream
kelas abstrak.
Cara Kerja BufferedOutputStream
The BufferedOutputStream
mempertahankan 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.BufferedOutputStream
paketnya 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 BufferdOutputStream
buffer bernama dengan FileOutputStream
file 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 BufferedOutputStream
kelas menyediakan implementasi untuk metode yang berbeda di OutputStream
kelas.
Write () Metode
write()
- menulis satu byte ke buffer internal aliran keluaranwrite(byte() array)
- menulis byte dari larik yang ditentukan ke aliran keluaranwrite(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).