"Hallo, Amigo! Je gebruikt de klassen BufferedReader en InputStreamReader al een hele tijd. Laten we nu eens kijken wat ze eigenlijk doen."

De klasse InputStreamReader is een klassieke adapter van de InputStream- interface naar de Reader- interface. Ook hier valt niets aan toe te voegen.

Maar in het kort is dit wat er gebeurt. Wanneer u het volgende teken van een InputStreamReader- object opvraagt ​​(leest) , leest het een paar bytes van InputStream die aan de constructor zijn doorgegeven en retourneert deze als één teken.

Maar Reader is niet het handigste object om mee te werken. Wat we vaak nodig hebben, is niet alle tekens die door de gebruiker zijn ingevoerd in één keer te lezen, maar deze tekens op te splitsen in regels.

"Maar de klasse Reader heeft een leesmethode (CharBuffer s). Kunnen we die niet gebruiken?"

"Deze methode leest gegevens in stukjes ter grootte van de buffer en plaatst ze in het CharBuffer-object."

Tekst is meestal verdeeld in regels. Dus de methode read(CharBuffer s) kan meerdere regels tegelijk lezen. Als we tekst precies tot aan het einde van een regel moeten lezen (dwz alle tekens in een regel tot een teken voor een nieuwe regel), is het beter om naar iets anders te zoeken. En er bestaat een alternatieve methode. In de BufferedReader- klasse.

De klasse BufferedReader , een handige structuur bovenop Reader, heeft één erg handige methode: readLine() . Met deze methode kunnen we in één keer hele regels tekst uit een Reader lezen. Wanneer u readLine in uw code aanroept, leest het tekens uit het Reader-object totdat het een teken voor een nieuwe regel tegenkomt. Zodra het newline-teken wordt aangetroffen, lijmt de methode deze tekens samen in een enkele string en retourneert deze.

"Ik heb dit regelmatig gebruikt, maar ik wist niet hoe het werkt. Nu weet ik het. Bedankt, Kim."