В наши дни с появлением многочисленных приложений на основе графического интерфейса и веб-приложений объем ввода и данных через консоль сократился. Однако существуют приложения, которые требуют и запускаются в консоли. Приложения Java не являются исключением из этого правила.
Получение ввода от пользователя было не так просто в Java, как в других языках, таких как scanf
в C, cin
в C++ и метод input()
в Python. В первые дни приходилось писать такой код
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.read(...)
Конструкция BufferedReader
сама по себе достаточна, чтобы напугать начинающего программиста Java.
Однако с Java 6 – да, вы слышали меня Java 6 – у нас появился новый API, который значительно упростил ввод с консоли, но мир программистов в основном придерживался старого способа, и это было наименее известно.
Строка.консоль().Строка чтения();
что менее страшно, чем предыдущее. Кроме того, он также обеспечивает чтение ввода на основе строк формата C, а также для интерактивного ввода, так что вы можете сделать что-то вроде
Console console = System.console(); String name = console.readLine("Please enter your name: "); System.console().readLine("Where do you live %s?", name);
Когда мы запустим код, мы увидим что-то вроде этого
Please enter your name: Gordon Where do you live Gordon?:
Другим замечательным методом класса console является read Password()
, который позволяет получать пароль от пользователя с отключенным эхом, когда пользователь вводит пароль.
Класс Console также предоставляет объект Reader для чтения обычным способом, а также объект Writer. Однако загвоздка в том, что для запуска основной программы требуется терминал. Если он выполняется фоновой задачей, метод System.console()
возвращает значение null.
Счастливого кодирования!
Кредиты на изображение: Пиксабей
Оригинал: “https://dev.to/rprabhu/the-less-known-api-for-console-input-in-java-104b”