Статья подготовлена для студентов курса «Разработчик Java» в образовательном проекте OTUS. Как правило, вывод данных на консоль в Java не представляет сложности. Обычно для этого используют System.out.print либо System.out.println. Но если дело доходит до ввода, то тут иногда возникают трудности. Они связаны с тем, что реализация консольного ввода в Java считается некоторыми специалистами достаточно сложной и неудобной. Однако освоить её и изучить работу сканера (Scanner) не составит труда. Как вы уже поняли, работа эта строится с помощью класса Scanner. Кроме сканера, для ввода в Java можно использовать и класс InputStream (System.in) — о нём поговорим в первую очередь. Ввод с помощью InputStream (System.in) Java получает данные из консоли посредством системного потока ввода (Isystem.in), а значит, такой способ ввода кажется очевидным. Но у него есть недостаток. Связан он с тем, что системный поток получает лишь числовые коды символов, введённые в окно консоли. При этом за раз