"Helo, Amigo! Anda telah lama menggunakan kelas BufferedReader dan InputStreamReader . Sekarang mari kita terokai apa yang mereka lakukan sebenarnya."

Kelas InputStreamReader ialah penyesuai klasik daripada antara muka InputStream kepada antara muka Pembaca . Tiada apa-apa untuk ditambah di sini juga.

Tetapi secara ringkasnya, inilah yang berlaku. Apabila anda meminta (membaca) aksara seterusnya daripada objek InputStreamReader , ia membaca beberapa bait daripada InputStream yang dihantar kepada pembina, dan mengembalikannya sebagai satu aksara.

Tetapi Pembaca bukanlah objek yang paling mudah untuk digunakan. Selalunya perkara yang kita perlukan adalah untuk tidak membaca semua aksara yang dimasukkan oleh pengguna sekaligus, tetapi sebaliknya untuk membahagikan aksara ini kepada baris.

"Tetapi kelas Pembaca mempunyai kaedah baca (CharBuffer s). Tidak bolehkah kita menggunakannya?"

"Kaedah ini membaca data dalam ketulan saiz penimbal dan meletakkannya dalam objek CharBuffer."

Teks biasanya dibahagikan kepada baris. Jadi kaedah baca (CharBuffer s) mungkin membaca beberapa baris sekaligus. Jika kita perlu membaca teks dengan tepat sehingga ke penghujung baris (iaitu semua aksara dalam satu baris sehingga aksara baris baharu), adalah lebih baik untuk mencari sesuatu yang lain. Dan kaedah alternatif memang wujud. Dalam kelas BufferedReader .

Kelas BufferedReader , yang merupakan struktur mudah di atas Reader, mempunyai satu kaedah yang sangat mudah: readLine() . Kaedah ini membolehkan kami membaca keseluruhan baris teks daripada Pembaca sekali gus. Apabila anda memanggil readLine dalam kod anda, ia membaca aksara daripada objek Reader sehingga ia menemui aksara baris baharu. Sebaik sahaja watak baris baharu ditemui, kaedah itu melekatkan aksara ini bersama-sama dalam satu rentetan dan mengembalikannya.

"Saya telah menggunakan ini secara kerap, tetapi saya tidak tahu bagaimana ia berfungsi. Sekarang saya tahu. Terima kasih, Kim."