Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java BufferedOutputStream: Penulisan Byte Efisien Dijelaskan

Java BufferedOutputStream: Efficient Byte Writing Explained

Mahir kelas BufferedOutputStream—desain, penggunaan, dan metode inti—melalui penjelasan yang jelas dan cuplikan kode praktis.

Kelas BufferedOutputStream, yang merupakan bagian dari paket java.io, membungkus OutputStream lain untuk mempercepat output tingkat byte. Dengan menampung data di memori, mengurangi jumlah operasi tulis ke perangkat dasar, yang dapat meningkatkan kinerja secara dramatis, terutama untuk file besar.

Ia mewarisi dari kelas abstrak OutputStream dan menyediakan implementasi konkret untuk metodenya.

Java BufferedOutputStream: Penulisan Byte Efisien Dijelaskan

Bagaimana BufferedOutputStream Bekerja

Aliran secara internal mengalokasikan buffer sebesar 8 KiB (8.192 byte) secara default. Saat write() dipanggil, byte disimpan di buffer ini terlebih dahulu. Hanya saat buffer penuh, atau saat flush() atau close() dipanggil, data yang dikosongkan ke aliran dasar.

Karena I/O disk mahal, strategi buffering ini mengurangi perjalanan pulang-pergi dan membuat penulisan byte jauh lebih cepat.


Membuat BufferedOutputStream

Impor kelas dan bungkus OutputStream apa pun, biasanya FileOutputStream:

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

Untuk mengontrol ukuran buffer, berikan argumen kedua:

BufferedOutputStream buffer = new BufferedOutputStream(file, 16384); // 16 KiB buffer 

Memilih buffer yang lebih besar dapat bermanfaat untuk tulisan yang sangat besar, tetapi default 8 KiB berfungsi baik untuk sebagian besar skenario.


Metode Utama BufferedOutputStream

Kelas ini mengimplementasikan seluruh sekelompok metode OutputStream dengan dukungan buffering.

write()

Contoh: Menulis Teks ke File

import java.io.*; public class Main { public static void main(String[] args) { String data = "This is a line of text inside the file"; try (FileOutputStream fos = new FileOutputStream("output.txt"); BufferedOutputStream bos = new BufferedOutputStream(fos)) { bos.write(data.getBytes()); } catch (IOException e) { e.printStackTrace(); } } } 

Menjalankan program ini membuat output.txt yang berisi:

This is a line of text inside the file 

Catatan: String.getBytes() mengonversi string menjadi array byte menggunakan charset default platform. Untuk hasil yang pasti, tentukan charset, misalnya data.getBytes(StandardCharsets.UTF_8).


flush()

Memaksa data yang ditampung untuk ditulis ke aliran dasar segera. Berguna saat Anda perlu memastikan persisten data sebelum menutup aliran atau saat menulis ke soket jaringan.

BufferedOutputStream bos = new BufferedOutputStream(fos); bos.write(data.getBytes()); bos.flush(); // guarantees data is sent 

close()

Menutup aliran, mengosongkan data yang tersisa, dan melepaskan sumber daya sistem. Setelah memanggil close(), aliran tidak dapat digunakan lagi.


Untuk referensi komprehensif, konsultasikan dokumentasi Java resmi: BufferedOutputStream API.

java

  1. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  2. Operator instanceof Java: Panduan Lengkap
  3. Menguasai Warisan Java: Konsep, Jenis, dan Contoh Praktis
  4. Memahami Kelas Bersarang Statis Java: Penggunaan, Perbedaan, dan Contoh
  5. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  6. Pola Singleton Java Dijelaskan: Cara Menerapkan dan Menggunakannya dengan Aman
  7. Menguasai Refleksi Java: Memeriksa Kelas, Metode, dan Field pada Waktu Eksekusi
  8. Menguasai Java ObjectOutputStream: Serialisasi, Metode, dan Contoh Praktis
  9. Menguasai Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe
  10. Pengoperasian File Java dengan java.io – Pembuatan, Pembacaan, Penulisan & Penghapusan