"Здравей, Амиго! Използваш класовете BufferedReader и InputStreamReader от дълго време. Сега нека проучим Howво всъщност правят."

Класът InputStreamReader е класически адаптер от интерфейса InputStream към интерфейса Reader . Тук също няма Howво да се добави.

Но накратко това се случва. Когато поискате (четете) следващия знак от обект InputStreamReader , той чете няколко byteа от InputStream, предадени на конструктора, и ги връща като един знак.

Но Reader не е най-удобният обект за работа. Често това, от което се нуждаем, не е да прочетем всички знаци, въведени от потребителя, наведнъж, а по-скоро да разделим тези знаци на редове.

„Но класът Reader има метод за четене (CharBuffer s). Не можем ли да го използваме?“

„Този ​​метод чете данни на парчета с размера на буфера и ги поставя в обекта CharBuffer.“

Текстът обикновено е разделен на редове. Така че методът read(CharBuffer s) може да прочете няколко реда наведнъж. Ако трябва да прочетем текст точно до края на ред (т.е. всички символи в реда до знак за нов ред), би било по-добре да потърсим нещо друго. И съществува алтернативен метод. В класа BufferedReader .

Класът BufferedReader , който е удобна структура върху Reader, има един много удобен метод: readLine() . Този метод ни позволява да четем цели редове текст от Reader наведнъж. Когато извикате readLine във вашия code, той чете знаци от обекта Reader, докато срещне знак за нов ред. След като се срещне символът за нов ред, методът свързва тези знаци заедно в един низ и го връща.

„Използвах това редовно, но не знаех How работи. Сега знам. Благодаря, Ким.“