BufferedReader
буферизует ввод, как и следует из названия. Это означает, что он читает из входного источника в буфер перед передачей его вам. Размер буфера здесь относится к числу байтов, которые он буферизирует.
Чтение ввода из большинства источников происходит очень медленно. Буфер размером всего 2 байта может снизить производительность, так как ваша программа, скорее всего, будет ожидать ввода большую часть времени. При размере буфера 2 чтение 100 байтов приведет к чтению 2 байтов из буфера в памяти (очень быстро), заполнению буфера (очень медленно), чтению 2 байтов из буфера (очень быстро), заполнению буфер (очень медленный) и т. д. - в целом очень медленный. При размере буфера 100 чтение 100 байтов приведет к чтению 100 байтов из буфера в памяти (очень быстро) - в целом очень быстро. При этом предполагается, что буфер содержит 100 байтов при чтении, что в разумном случае является разумным предположением.
Если вы не знаете, что делаете, вы должны использовать размер буфера по умолчанию, который достаточно велик. Одной из причин меньшего размера буфера является то, что вы работаете на устройстве с ограниченной памятью, так как буфер потребляет память.