Как работает BufferedReader?

Есть код:

import java.io.*;

class Main{
        public static void main(String[] args) throws IOException{
                BufferedReader qq = new BufferedReader(new InputStreamReader(System.in), 1);
                int x = qq.read();
                int y = System.in.read();
        }
}

Я рассчитываю, что размер буфера будет равен 1. То есть когда программа попросит ввести данные и я введу например qwer, а потом нажму enter, буква q будет прочитана и её код запишется в x. После этого, так как это буферизованный поток, символы будут помещены в буфер, но так как я назначил его размер равным одному, то туда будет помещен лишь один символ - w. Следовательно в потоке остаётся еще 3 символа (e, r и enter) и код первого из них будет помещен в y.

Но к удивлению, сколько бы символов я не вводил программа каждый раз просит меня ввести значения для переменной y. Почему? Как это работает?


Ответы (0 шт):