"Hej, Amigo! Du har brugt klasserne BufferedReader og InputStreamReader i lang tid. Lad os nu undersøge, hvad de rent faktisk gør."

InputStreamReader - klassen er en klassisk adapter fra InputStream- grænsefladen til Reader- grænsefladen. Her er der heller ikke noget at tilføje.

Men kort sagt, det er hvad der sker. Når du anmoder om (læser) det næste tegn fra et InputStreamReader- objekt, læser det nogle få bytes fra InputStream , der er sendt til konstruktøren, og returnerer dem som ét tegn.

Men Reader er ikke det mest bekvemme objekt at arbejde med. Det, vi har brug for, er ofte ikke at læse alle de tegn, brugeren indtaster på én gang, men snarere at opdele disse tegn i linjer.

"Men Reader-klassen har en læsemetode (CharBuffer s). Kan vi ikke bruge den?"

"Denne metode læser data i bidder på størrelse med bufferen og placerer dem i CharBuffer-objektet."

Tekst er normalt opdelt i linjer. Så read(CharBuffer s)-metoden kan læse flere linjer på én gang. Hvis vi skal læse tekst nøjagtigt op til slutningen af ​​en linje (dvs. alle tegnene i en linje indtil et nylinjetegn), ville det være bedre at kigge efter noget andet. Og der findes en alternativ metode. I BufferedReader- klassen.

BufferedReader - klassen, som er en praktisk struktur oven på Reader, har en meget praktisk metode: readLine() . Denne metode lader os læse hele tekstlinjer fra en Reader på én gang. Når du kalder readLine i din kode, læser den tegn fra Reader-objektet, indtil den støder på et newline-tegn. Når nylinjetegnet er stødt på, limer metoden disse tegn sammen i en enkelt streng og returnerer den.

"Jeg har brugt det her jævnligt, men jeg vidste ikke, hvordan det virker. Nu ved jeg det. Tak, Kim."