"Halo, Amigo! Anda sudah lama menggunakan kelas BufferedReader dan InputStreamReader . Sekarang mari kita jelajahi apa yang sebenarnya mereka lakukan."

Kelas InputStreamReader adalah adaptor klasik dari antarmuka InputStream ke antarmuka Pembaca . Tidak ada yang perlu ditambahkan di sini juga.

Tapi singkatnya, inilah yang terjadi. Saat Anda meminta (membaca) karakter berikutnya dari objek InputStreamReader , ia membaca beberapa byte dari InputStream yang diteruskan ke konstruktor, dan mengembalikannya sebagai satu karakter.

Tapi Reader bukanlah objek yang paling nyaman untuk dikerjakan. Seringkali yang kita butuhkan bukanlah membaca semua karakter yang dimasukkan oleh pengguna sekaligus, melainkan membagi karakter ini menjadi beberapa baris.

"Tapi kelas Pembaca memiliki metode baca (CharBuffer s). Tidak bisakah kita menggunakannya?"

"Metode ini membaca data dalam ukuran buffer dan menempatkannya di objek CharBuffer."

Teks biasanya dibagi menjadi beberapa baris. Jadi metode read(CharBuffer s) mungkin membaca beberapa baris sekaligus. Jika kita perlu membaca teks tepat sampai akhir baris (yaitu semua karakter dalam satu baris sampai karakter baris baru), akan lebih baik untuk mencari sesuatu yang lain. Dan metode alternatif memang ada. Di kelas BufferedReader .

Kelas BufferedReader , yang merupakan struktur nyaman di atas Reader, memiliki satu metode yang sangat nyaman: readLine() . Metode ini memungkinkan kita membaca seluruh baris teks dari Pembaca sekaligus. Saat Anda memanggil readLine dalam kode Anda, ia membaca karakter dari objek Reader hingga menemukan karakter baris baru. Setelah karakter baris baru ditemukan, metode merekatkan karakter-karakter ini bersama-sama dalam satu string dan mengembalikannya.

"Aku sudah sering menggunakan ini, tapi aku tidak tahu cara kerjanya. Sekarang aku tahu. Terima kasih, Kim."