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.baeldung.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
Чтобы получить объект 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 .