Специально для работы с консолью в Java определен класс Console, который хранится в пакете java.io. Он не получает консольный ввод-вывод сам по себе, а использует уже имеющиеся потоки System.in и System.out. Но в то же время Console значительно упрощает ряд операций, связанных с консолью.
Для получения объекта консоли надо вызвать статический метод System.console()
:
Console console = System.console();
Основные методы класса Console:
flush(): выводит на консоль все данные из буфера
format(): выводит на консоль строку с использованием форматирования
printf(): выводит на консоль строку с использованием форматирования (фактически то же самое, что и предыдущий метод)
String readLine(): считывает с консоли введенную пользователем строку
char[] readPassword(): считывает с консоли введенную пользователем строку, при этом символы строки не отображаются на консоли
Используем класс Console:
import java.io.Console; public class Program { public static void main(String[] args) { // получаем консоль Console console = System.console(); if(console!=null){ // считываем данные с консоли String login = console.readLine("Введите логин:"); char[] password = console.readPassword("Введите пароль:"); console.printf("Введенный логин: %s \n", login); console.printf("Введенный пароль: %s \n", new String(password)); } } }
Важно, что доступ к консоли мы можем получить только из самой консоли. При запуске, например, в Netbeans вызов System.console()
будет
возвращать значение null
. Поэтому при работе с консолью желательно проверять полученное значение на null
. Ну а если
мы запустим программу в командной строке, то естественно у нас все будет работать: