Специально для работы с консолью в 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. Ну а если
мы запустим программу в командной строке, то естественно у нас все будет работать: