"Hei, Amigo! Du har brukt klassene BufferedReader og InputStreamReader i lang tid. La oss nå utforske hva de faktisk gjør."

InputStreamReader - klassen er en klassisk adapter fra InputStream- grensesnittet til Reader- grensesnittet. Her er det heller ikke noe å legge til.

Men kort sagt, dette er hva som skjer. Når du ber om (les) neste tegn fra et InputStreamReader- objekt, leser det noen få byte fra InputStream sendt til konstruktøren, og returnerer dem som ett tegn.

Men Reader er ikke det mest praktiske objektet å jobbe med. Ofte trenger vi ikke å lese alle tegnene som er skrevet inn av brukeren samtidig, men heller å dele disse tegnene i linjer.

"Men Reader-klassen har en lesemetode (CharBuffer s). Kan vi ikke bruke den?"

"Denne metoden leser data i biter på størrelse med bufferen og plasserer dem i CharBuffer-objektet."

Tekst er vanligvis delt inn i linjer. Så read(CharBuffer s)-metoden kan lese flere linjer samtidig. Hvis vi trenger å lese tekst nøyaktig til slutten av en linje (dvs. alle tegnene i en linje til et nylinjetegn), ville det være bedre å se etter noe annet. Og det finnes en alternativ metode. I BufferedReader- klassen.

BufferedReader - klassen, som er en praktisk struktur på toppen av Reader, har en veldig praktisk metode: readLine() . Denne metoden lar oss lese hele tekstlinjer fra en leser på en gang. Når du kaller readLine i koden din, leser den tegn fra Reader-objektet til den møter et nylinjetegn. Når nylinjetegnet er påtruffet, limer metoden disse tegnene sammen i en enkelt streng og returnerer den.

"Jeg har brukt dette regelmessig, men jeg visste ikke hvordan det fungerer. Nå vet jeg det. Takk, Kim."