Java не имеет обобщенного метода консольного ввода, который соответствует стандартной С-функции scanf() или операциям ввода С++.
Консольный ввод в Java выполняется с помощью считывания из объекта system.in. Чтобы получить символьный поток, который присоединен к консоли, нужно перенести ("упаковывать") System.in в объект типа BufferedReader. Класс BufferedReader поддерживает буферизированный входной поток. Обычно используется следующий его конструктор:
BufferedReader (Reader inputReader)
где inputReader — поток, который связан с создающимся экземпляром класса BufferedReader. Reader — абстрактный класс. Один из его конкретных подклассов — это inputstreamReader, который преобразовывает байты в символы. Чтобы получить InputStreamReader-объект, который связан с System.in, используйте следующий конструктор:
InputstreamReader (InputStream input Stream)
Поскольку System.in ссылается на объект типа InputStream, его можно использовать в качестве параметра InputStream. Объединив все это вместе, следующая строка кода создает объект класса BufferedReader, который связан с клавиатурой:
BufferedReader br = new BufferedReader(new InputstreamReader (System, in));
После того как этот оператор выполнится, объектная переменная br станет символьным потоком, связанным с консолью через System, in.