1. Введение
В этом кратком руководстве мы продемонстрируем несколько способов использования консоли для пользовательского ввода и вывода в Java .
Мы рассмотрим несколько методов класса Scanner
для обработки ввода, а затем покажем простой вывод с помощью System.out
.
Наконец, мы увидим, как использовать класс Console
, доступный начиная с Java 6, как для консольного ввода, так и для вывода.
2. Чтение из System.in
В наших первых примерах мы будем использовать класс Scanner в пакете
java.util
для получения входных данных из System.in
— «стандартного» входного потока:
Scanner scanner = new Scanner(System.in);
Давайте воспользуемся методом nextLine()
для чтения всей строки ввода в виде строки
и перехода к следующей строке:
String nameSurname = scanner.nextLine();
Мы также можем использовать метод next()
для получения следующего входного токена из потока:
String gender = scanner.next();
Если мы ожидаем ввода числовых значений, мы можем использовать nextInt()
для получения следующего ввода в виде примитива типа int
, и, аналогично, мы можем использовать nextDouble()
для получения переменной типа double
:
int age = scanner.nextInt();
double height = scanner.nextDouble();
Класс Scanner
также предлагает методы hasNext_Prefix()
, которые возвращают true
, если следующий токен можно интерпретировать как соответствующий тип данных .
Например, мы можем использовать метод hasNextInt()
`` , чтобы проверить, можно ли интерпретировать следующий токен как целое число:
while (scanner.hasNextInt()) {
int nmbr = scanner.nextInt();
//...
}
Кроме того, мы можем использовать метод hasNext(Pattern pattern)
, чтобы проверить, соответствует ли следующий входной токен шаблону :
if (scanner.hasNext(Pattern.compile("www.foreach.com"))) {
//...
}
Помимо использования класса Scanner ,
мы также можем использовать Input
StreamReader
с System.in
для получения ввода с консоли :
BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in));
И затем мы можем прочитать ввод и проанализировать его до целого числа:
int i = Integer.parseInt(buffReader.readLine());
3. Запись в System.out
Для вывода на консоль мы можем использовать System.out
— экземпляр класса PrintStream
, который является типом OutputStream
.
В нашем примере мы будем использовать вывод консоли, чтобы предоставить приглашение для пользовательского ввода и отобразить окончательное сообщение для пользователя.
Давайте используем метод println()
для печати строки
и завершения строки :
System.out.println("Please enter your name and surname: ");
В качестве альтернативы мы можем использовать метод print()
, который работает аналогично println()
, но без завершения строки :
System.out.print("Have a good");
System.out.print(" one!");
4. Использование класса консоли
для ввода и вывода
В JDK 6 и более поздних версиях мы можем использовать класс Console из пакета
java.io
для чтения и записи в консоль.
Чтобы получить объект Console
, мы вызовем System.console()
:
Console console = System.console();
Далее воспользуемся методом readLine() класса
Console
, чтобы записать строку в консоль, а затем прочитать строку из консоли :
String progLanguauge = console.readLine("Enter your favourite programming language: ");
Если нам нужно прочитать конфиденциальную информацию, такую как пароль, мы можем использовать метод readPassword()
, чтобы запросить у пользователя пароль и прочитать пароль из консоли с отключенным эхом :
char[] pass = console.readPassword("To finish, enter password: ");
Мы также можем использовать класс Console
для записи вывода в консоль, например, используя метод printf ()
с аргументом String :
console.printf(progLanguauge + " is very interesting!");
5. Вывод
В этой статье мы показали, как использовать несколько классов Java для выполнения пользовательского ввода и вывода на консоли.
Как всегда, примеры кода из этого руководства доступны на GitHub .