"Merhaba Amigo! Uzun zamandır BufferedReader ve InputStreamReader sınıflarını kullanıyorsunuz . Şimdi gerçekte ne işe yaradıklarını inceleyelim."
InputStreamReader sınıfı , InputStream arabiriminden Reader arabirimine giden klasik bir bağdaştırıcıdır . Burada da eklenecek bir şey yok.
Ama kısacası olan bu. Bir InputStreamReader nesnesinden bir sonraki karakteri istediğinizde (okuduğunuzda) , yapıcıya iletilen InputStream'den birkaç bayt okur ve bunları bir karakter olarak döndürür.
Ancak Reader, çalışmak için en uygun nesne değildir. Çoğu zaman ihtiyacımız olan, kullanıcının girdiği tüm karakterleri bir kerede okumak değil, bu karakterleri satırlara ayırmaktır.
"Fakat Reader sınıfının bir okuma (CharBuffer s) yöntemi var. Bunu kullanamaz mıyız?"
"Bu yöntem, verileri arabellek boyutunda parçalar halinde okur ve bunları CharBuffer nesnesine yerleştirir."
Metin genellikle satırlara bölünür. Bu nedenle read(CharBuffer s) yöntemi birkaç satırı aynı anda okuyabilir. Metni tam olarak bir satırın sonuna kadar okumamız gerekiyorsa (yani bir satırdaki tüm karakterleri yeni satır karakterine kadar), başka bir şey aramak daha iyi olur. Ve alternatif bir yöntem var. BufferedReader sınıfında .
Reader'ın üzerinde uygun bir yapı olan BufferedReader sınıfının çok kullanışlı bir yöntemi vardır: readLine ( ) . Bu yöntem, bir Reader'dan tüm metin satırlarını tek seferde okumamızı sağlar. Kodunuzda readLine'ı çağırdığınızda, bir yeni satır karakteriyle karşılaşana kadar Reader nesnesinden karakterleri okur. Yeni satır karakteriyle karşılaşıldığında, yöntem bu karakterleri tek bir dizgede birbirine yapıştırır ve onu döndürür.
"Bunu düzenli olarak kullandım ama nasıl çalıştığını bilmiyordum. Şimdi biliyorum. Teşekkürler, Kim."