Когда мы должны использовать класс консоли?

Я читал о Console классе, и в самой первой строке было написано

Новый для Java 6, и когда мы запускаем Java SE 6 из командной строки, мы обычно используем объект класса консоли

Итак, что означает , мы неявно используем консольный класс через командную строку

Затем я начал искать дополнительные сведения о классе консоли и нашел Вход из класса консоли в java и Console. Итак, заключили некоторые моменты

  • Класс консоли доступен только вне IDE, используя System.console().readLine();
  • Console класс читает пароль или кодовую фразу из консоли с отключенным эхом, используя readPassword()

Хотя у нас был класс сканера и BufferedReader для чтения ввода с консоли и который был добавлен ранее Java 5. Итак, только из соображений безопасности класс Console был добавлен в Java 6? или есть другие преимущества для использования этого класса.

Может ли кто-нибудь поделиться более подробной информацией о классе Console?

Ответ 1

Класс Console читается непосредственно с консоли процесса (обычно/dev/console в Unix-системах). Консоль отличается от System.in тем, что она не может быть перенаправлена ​​при запуске команды. Он также используется для чтения паролей, потому что при чтении с консоли вы можете контролировать, будете ли вы эхом вводить символы.

Чтобы узнать больше об этом классе, прочитайте о консоли и стандартном входе в Unix-системах (это, как правило, вещь Unix, и я не совсем уверен, как она сопоставляется с системами Windows).

Наконец, сканер может читать с любого входа: файл, поток или сама консоль, поэтому он отличается от Консоли.

Ответ 2

Класс Console пытается реализовать независимый от платформы способ обработки с помощью ввода в консоль. У всех ОС есть консоль в любом случае, но они все равно различны в реализации. Таким образом, класс Console предоставляет Java-платформу независимого класса времени выполнения для доступа к таким словам, как ввод пароля и т.д.

Ответ 3

Является ли виртуальная машина консолью, зависит от базовой платформы, а также на том, как виртуальный машина вызывается. Если виртуальная машина запущена с интерактивной командной строки без перенаправления стандартного ввода и то его консоль будет существовать и, как правило, будет подключен к клавиатуре и дисплею, с которого виртуальная машина был запущен. Если виртуальная машина запускается автоматически, для пример с помощью планировщика фоновых заданий, тогда он, как правило, не будет иметь консоль.

Как получить вход из класса консоли на Java?