BufferedReader
Коротко: Символьный поток, буферизующий чтение и позволяющий читать построчно (readLine()) — обычно оборачивает FileReader или InputStreamReader.
Подробнее: Без буферизации каждый доступ к отдельному символу мог бы вызывать дорогой системный вызов — BufferedReader читает более крупные блоки в память сразу и передаёт их оттуда; это заметно быстрее, особенно…