Lompat ke konten Lompat ke sidebar Lompat ke footer

Class BufferedReader Java Beserta Contohnya

Secara umum, setiap permintaan read Java yang dibuat oleh pengguna akan menyebabkan permintaan baca yang berkaitan dengan yang dibuat dari aliran karakter atau byte yang mendasarinya. Oleh karena itu disarankan untuk menggabungkan BufferedReader dengan Reader manapun yang operasi read()-nya tidak efisien, seperti FileReaders dan InputStreamReaders. Karena hal tersebut, maka program yang menggunakan DataInputStreams Java untuk input tekstual dapat dilokalisasi dengan mengganti setiap DataInputStream dengan BufferedReader yang sesuai.

Sebelum lebih lanjut mempelajari materi tentang Class BufferedReader Java Beserta Contohnya, terlebih dahulu pelajari materi tentang: Operator Bitwise Java Beserta Contohnya, Mengambil Nilai Input Java Beserta Contohnya, dan Scanner Class Java Beserta Contohnya.

Dalam pengembangan perangkat lunak menggunakan bahasa pemrograman Java, manipulasi input/output (I/O) seringkali diperlukan. Salah satu class yang sangat berguna dalam membaca input adalah BufferedReader. Class ini memungkinkan pengembang untuk membaca teks dari aliran input dengan membungkus Reader yang ada dalam buffer, yang menghasilkan pengalaman pembacaan yang lebih efisien.

Penggunaan Class BufferedReader

Class BufferedReader adalah bagian dari paket java.io dalam Java. Ini menyediakan metode untuk membaca teks dari aliran input, seperti FileReader, InputStreamReader, atau CharArrayReader, dan menyimpannya dalam buffer untuk digunakan dengan lebih efisien. Salah satu manfaat utama penggunaan BufferedReader adalah kemampuannya untuk membaca data dalam jumlah besar lebih cepat daripada metode pembacaan langsung.

Constructors dari Class BufferedReader:
  • BufferedReader(Reader in): Menciptakan sebuah steram input karakter buffer yang menggunakan sebuah nilai ukuran default pada input buffer.
  • BufferedReader(Reader in, int sz): Menciptakan sebuah stream buffer input karakter yang digunakan pada input buffer dari ukuran spesifik.

Class Methods BufferedReader:
  • close(): Menutup stream dan melepaskan sumber daya sistem apapun yang berasosiasi dengannya. Ketika aliran atau stream tersebut telah ditutup, maka read(), ready(), mark(), reset(), atau skip() akan dilemparkan kebagian IOException, yang akan menutup sebuah aliran sebelumnya, yang tidak akan memberikan efek apapun pada program.
  • mark(): Menandai posisi saat ini dari sebuah stream. Panggilan berikutnya ke reset() akan mencoba mengubah posisi aliran ke titik ini.
  • markSupported(): Memberitahukan apakah stream tersebut mendukung operasi mark() atau tidak.
  • read(): Membaca sebuah karakter tunggal.
  • read(char[] cbuf, int off, int len): Membaca karakter menjadi sebuah porsi dari suatu array. Method ini mengimplementasikan kontrak umum dari bacaan method yang berkoresponden dari class Reader. Sebagai tambahan, fungsi ini juga mencoba membaca karakter sebanyak mungkin dengan berulang kali untuk memanggil metode baca dari aliran yang mendasarinya.
  • readLine(): Membaca sebuah baris dari teks. Sebuah baris yang telah ditentukan akan dimatikan oleh baris apapun seperti '\n', ‘\r’, atau nilai return yang diikuti segera dengan umpan baris.
  • ready(): Memberitahu apakah stream tersebut telah siap dibaca atau tidak.
  • reset(): Melakukan reset stream pada tanda sebelumnya.
  • skip(long): Melewatkan karakter tertentu.

Baca Juga:

Contoh:

// Program Java yang

// mendemonstrasikan method

// BufferedReader.

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;


class BufferedReaderDemo

{


public static void main(String[] args) throws IOException

{

FileReader fr = new FileReader("file.txt");


BufferedReader br = new BufferedReader(fr);


char c[]=new char[20];


// Ilustrasi method

// markSupported().

if(br.markSupported())

{

System.out.println("mark() method is supported");


// Ilustrasi method mark.

br.mark(100);


}


// Melewati 8 karakter.

br.skip(8);


// Ilustrasi method ready().

if(br.ready())

{


// ILustrasi method

// readLine().

System.out.println(br.readLine());


// Ilustrasi read(char c[],int

// off,int len).

br.read(c);


for (int i = 0; i <20 ; i++)

{System.out.print(c[i]);}


System.out.println();


// Ilustrasi method reset().

br.reset();


for (int i = 0; i <8 ; i++)

{

// Ilustrasi method read().

System.out.print((char)br.read());

}


}


}


}

Output:
mark() method is supported
first line
this is second line
This is

Keuntungan penggunaan BufferedReader:
  • Efisiensi: Buffering memungkinkan penggunaan sumber daya yang lebih efisien karena membaca data dalam jumlah besar sekaligus, mengurangi jumlah panggilan sistem operasi yang diperlukan.
  • Mudah Digunakan: BufferedReader menyediakan metode yang mudah digunakan untuk membaca teks dari berbagai sumber input.
  • Fleksibilitas: Dapat digunakan dengan berbagai macam sumber input, seperti file, string, atau bahkan System.in untuk membaca dari konsol.
  • Meningkatkan Performa: Dibandingkan dengan metode pembacaan langsung, BufferedReader cenderung lebih cepat karena membaca data dalam jumlah besar sekaligus ke dalam buffer, mengurangi overhead pembacaan per karakter atau per byte.
  • Meminimalkan Panggilan Sistem Operasi: Dengan membaca data dalam jumlah besar sekaligus, BufferedReader mengurangi jumlah panggilan ke sistem operasi, yang dapat meningkatkan kinerja aplikasi, terutama dalam operasi I/O yang intensif.
  • Mengoptimalkan Penggunaan Sumber Daya: Dengan menggunakan buffer, BufferedReader dapat mengoptimalkan penggunaan sumber daya seperti memori dan bandwidth, karena data tidak perlu dibaca dari sumber asli setiap kali akses diperlukan.
  • Fungsionalitas Tambahan: Selain membaca baris teks, BufferedReader juga menyediakan metode tambahan seperti lines(), yang memungkinkan pembacaan baris teks dalam bentuk aliran Stream, memudahkan pengolahan data yang lebih kompleks.
  • Kemudahan Pengelolaan Error: BufferedReader menyediakan penanganan error yang baik melalui IOException, memungkinkan pengembang untuk secara elegan menangani situasi yang tidak terduga saat pembacaan data.

Meskipun memiliki banyak keuntungan, kelas BufferedReader juga memiliki beberapa kekurangan yang perlu dipertimbangkan:
  • Tidak Cocok untuk Pembacaan Data Binary: Meskipun ideal untuk membaca data teks, BufferedReader tidak cocok untuk membaca data dalam format biner karena biasanya data biner tidak diinterpretasikan dengan benar ketika dibaca menggunakan metode pembacaan teks.
  • Overhead Karena Buffering: Meskipun buffering dapat meningkatkan kinerja dengan mengurangi jumlah panggilan ke sistem operasi, namun memperkenalkan overhead karena pengelolaan buffer. Dalam beberapa kasus, overhead ini mungkin tidak signifikan, tetapi perlu diperhatikan dalam situasi di mana efisiensi sangat penting.
  • Membutuhkan Penanganan Eksepsi: Penggunaan BufferedReader membutuhkan penanganan eksepsi yang baik untuk menangani situasi yang tidak terduga, seperti kesalahan pembacaan atau penutupan yang tidak berhasil. Hal ini dapat meningkatkan kompleksitas kode dan memerlukan perhatian ekstra dari pengembang.
  • Potensi Overhead dalam Kapasitas Buffer: Ukuran buffer yang terlalu besar atau terlalu kecil dapat mengakibatkan overhead yang tidak perlu. Pengaturan ukuran buffer yang optimal bisa menjadi tantangan tergantung pada kasus penggunaan dan lingkungan aplikasi.
  • Pemrosesan Berbasis Teks: Karena sifatnya yang berbasis teks, BufferedReader tidak cocok untuk membaca data yang tidak terstruktur atau data yang memerlukan pemrosesan langsung byte per byte tanpa interpretasi teks.

Meskipun memiliki kekurangan-kekurangan ini, kebanyakan dari kekurangan tersebut dapat ditangani dengan baik dengan perencanaan dan pemahaman yang baik tentang bagaimana dan kapan menggunakan kelas BufferedReader dalam pengembangan perangkat lunak Java. Dengan mempertimbangkan baik kelebihan maupun kekurangannya, pengguna dapat memilih alat yang tepat sesuai dengan kebutuhan aplikasi.

Kesimpulan

Class BufferedReader adalah salah satu alat yang sangat berguna dalam pengembangan perangkat lunak Java untuk membaca input teks dengan efisien. Dengan kemampuannya untuk menyimpan data dalam buffer, ia dapat meningkatkan kinerja aplikasi yang melibatkan operasi pembacaan data. Dengan pemahaman yang baik tentang cara menggunakan BufferedReader, pengembang dapat meningkatkan efisiensi dan fleksibilitas kode dalam memanipulasi I/O.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Sheilla Novita Alviani, Shintia Apriliana, Siwi Nugrahaning Widhi, Sonyadi Kurniatama, dan Susanti Septika Avian.

6 komentar untuk "Class BufferedReader Java Beserta Contohnya"

  1. Apa yang dimaksud dengan class bufferedReader pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. BufferedReader Java merupakan class yang menyederhanakan pembacaan teks dari aliran input karakter.

      Hapus
    2. Class bufferedReader Java berfungsi untuk menyangga karakter untuk memungkinkan proses pembacaan data teks yang efisien.

      Hapus
    3. Class bufferedReader Java berfungsi untuk membaca teks dari aliran input karakter, buffering karakter sehingga menyediakan proses pembacaan karakter, array, dan baris yang efisien.

      Hapus
  2. Apakah class bufferedReader Java lebih baik daripada class Scanner Java?

    BalasHapus
    Balasan
    1. Class bufferedReader Java bekerja sedikit lebih cepat dibandingkan dengan Scanner karena class Scanner melakukan penguraian data masukkan, sedangkan bufferedReader hanya membaca urutan karakter saja.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -