2011-01-05 5 views
1

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

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

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

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

ответ

2

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

0

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

1

Я предлагаю вам Scanner класс, чтобы получить пользовательский ввод с консоли

Scanner in = new Scanner(System.in); 

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

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

, но между этими двумя I Рекомендуем вам Консоль

0

ИМХО они полные различия. Как доктор говорит:

методы для доступа к символьной на основе консоли устройства, если таковые имеется, связанные с текущей виртуальной машиной Java.

Таким образом, реализация является специфичной для ОС, а не независимой от платформы (может быть или нет).

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

echo 123 | java Test 

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

Смежные вопросы