Зачем использовать java.io.Console? - PullRequest
10 голосов
/ 10 июня 2009

Просто быстрый здесь.

Каковы преимущества использования java.io.Console по сравнению с использованием BufferedReader обертывания и InputStreamReader для System.in?

Зачем мне это использовать?

Спасибо за любой совет!

Ответы [ 6 ]

10 голосов
/ 10 июня 2009

Потому что это код, который уже написан для вас ... нет необходимости заново изобретать колесо. Скорее всего, вы не получите его лучше, чем он есть.

9 голосов
/ 10 июня 2009

Вы можете использовать java.io.Console, чтобы представить пользователю интерактивную командную строку. Вы можете сделать все это с помощью System.in самостоятельно, но вам придется реализовать такие вещи, как уведомление о завершении ввода или readPassword и т. Д.

6 голосов
/ 10 июня 2009

См. java.io. Консоль наконец здесь!

Одна из самых популярных функций запросы на J2SE в последнее время имеет была просьба улучшить консоль поддержать и предоставить способ войти пароли с отключенным эхом. Разработчики знают эту функцию 4050435 как это было незаметно в топ-25 Список РСЕ на некоторое время.

3 голосов
/ 10 июня 2009

java.io.Console работает только при запуске Java-программы из командной строки без перенаправления STDIN / STDOUT.

Основное преимущество, которое я вижу в Console перед System.in, заключается в том, что у вас есть метод readPassword (), который не отображает символы, введенные пользователем (я не смог найти способ сделать это с System.in ).

У вас также есть readLine (), которая выдаст подсказку и прочитает одну строку. Вам не нужно создавать свой собственный LineNumberReader.

Но если вы хотите, чтобы ваша Java-программа могла читать из STDIN, когда она перенаправлена ​​из файла или канала, вам все равно придется использовать System.in.

2 голосов
/ 10 июня 2009

Еще один трюк, который, я уверен, вы не получите с помощью Console - я создал свои собственные потоки ввода и вывода и заменил System.in/out на них. Моя реализация потока добавляется в файл журнала и выводится на экран.

Когда я включил «Отладочную информацию» моего бедняка, я мог даже заставить ее сказать мне, из какой программы / строки произошел системный выход (хотя это было медленно, он создал исключение и исследовал соответствующую запись в стеке, чтобы по умолчанию выключен)

0 голосов
/ 05 июля 2014

java.io.Console используется для получения и считывания ввода от пользователя во время выполнения, и вывод отображается после обработки ввода от пользователя.

Для получения более подробной информации посетите https://www.examsmyantra.com/article/58/java/java-io---console-input-and-output

...