InputStreamReader или Консоль для ввода-вывода Java - PullRequest
1 голос
/ 05 января 2011

Чтобы получить пользовательский ввод в Java, какой метод лучше?

reader = new BufferedReader(new InputStreamReader(System.in));

или с помощью консоли -> Console c = System.console();

В чем разница между двумя и какой из них будет использоваться. Или есть какой-нибудь другой лучший метод, кроме этих двух?

Ответы [ 4 ]

2 голосов
/ 05 января 2011

Консоль была недавно введена в Java (Java 6) для упрощения чтения и записи в командной строке.Поэтому я бы использовал Консоль.

1 голос
/ 05 января 2011

Я предлагаю вам Сканер класс для получения пользовательского ввода с консоли

Scanner in = new Scanner(System.in);

in.next();
int i = in.nextInt();
float f = in.nextFloat();
double d = in.nextDouble();    
String s = in.nextLine();

и другие красивые методы

но между этими двумя я рекомендую вам Консоль

0 голосов
/ 05 января 2011

ИМХО они совершенно разные.Как сказано в документе:

Методы для доступа к символьно-консольному устройству, если таковое имеется, связанному с текущей виртуальной машиной Java.и не зависит от платформы (может быть или нет).

С Consol даже вы не можете читать из стандартного ввода:

echo 123 | java Test

Если Test использует консоль, он не будет работать.Таким образом, пользователь ДОЛЖЕН предоставить данные с консоли.

0 голосов
/ 05 января 2011

они в значительной степени одинаковы, однако в консоли есть дополнительные методы для безопасного чтения информации от пользователя (например, пароля) и возвращает более интуитивный результат для того, поддерживает ли базовая платформа операции консоли или запускается неинтерактивная среда

...