Буферизация в BufferedReader работает так: класс считывает весь блок данных из входного потока и сохраняет его в буфере. 1 Затем, при продолжении чтения, BufferedReader возвращает символы не из исходного потока, а из буфера, пока тот полностью не опустеет. 1
После этого класс считывает следующий блок данных из входного потока и сохраняет его в буфере для дальнейших вызовов операций чтения. 1
Цель буферизации — увеличить производительность чтения данных из потока, так как чтение из буфера обычно происходит намного быстрее, чем доступ к базовому входному потоку. 13
По умолчанию размер внутреннего буфера BufferedReader — 8 КБ (8192 байта или символа), но его можно изменить. 4