Консольный ввод/вывод в Java

Чтение и запись пользовательского ввода в Java

1. Вступление

В этом кратком руководстве мы будем использоватьdemonstrate several ways to use a console for user input and output in Java.

Мы рассмотрим несколько методов классаScanner для обработки ввода, а затем покажем простой вывод с использованиемSystem.out.

Наконец, мы увидим, как использовать классConsole, доступный с Java 6, как для ввода, так и для вывода с консоли.

2. Чтение изSystem.in

Для наших первых примеров мы будем использоватьuse the Scanner class in the java.util package to obtain the input from System.in - «стандартный» поток ввода:

Scanner scanner = new Scanner(System.in);

Давайтеuse the nextLine() method to read an entire line of input as a String и перейдем к следующей строке:

String nameSurname = scanner.nextLine();

Мы также можемuse the next() method to get the next input token из потока:

String gender = scanner.next();

Если мы ожидаем числовых вводов, мы можем использовать примитивuse nextInt() to get the next input as an int, и аналогично мы можемuse nextDouble() to get a variable of type double:

int age = scanner.nextInt();
double height = scanner.nextDouble();

КлассScanner также предлагаетhasNext_Prefix() methods which return true if the next token can be interpreted as a corresponding data type.

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

while (scanner.hasNextInt()) {
    int nmbr = scanner.nextInt();
    //...
}

Также мы можем использовать метод hasNext(Pattern pattern)  дляcheck if the following input token matches a pattern:

if (scanner.hasNext(Pattern.compile("www.example.com"))) {
    //...
}

Помимо использования классаScanner,we can also use an InputStreamReader with System.in to get the input from the console:

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

И тогда мы можем прочитать ввод и разобрать его в целое число:

int i = Integer.parseInt(buffReader.readLine());

3. Запись вSystem.out

Для вывода на консоль мы можем использоватьSystem.out — an instance of the PrintStream class, w, который является типомOutputStream.

В нашем примере мы будем использовать вывод в консоль, чтобы предоставить пользователю подсказку для ввода и отобразить последнее сообщение для пользователя.

Пустьuse the println() method to print a String and terminate the line:

System.out.println("Please enter your name and surname: ");

В качестве альтернативы мы можемuse the print() method, which works similarly to println(), but without terminating the line:

System.out.print("Have a good");
System.out.print(" one!");

4. Использование классаConsole для ввода и вывода

В JDK 6 и новее мы можем использовать классConsole из пакетаjava.io для чтения и записи в консоль.

Чтобы получить объектConsole, мы вызовемSystem.console():

Console console = System.console();

Затем давайте воспользуемся методомreadLine()  из классаConsole доwrite a line to the console and then read a line from the console:

String progLanguauge = console.readLine("Enter your favourite programming language: ");

Если нам нужно прочитать конфиденциальную информацию, такую ​​как пароль, мы можем использовать методreadPassword() дляprompt a user for a password and read the password from the console with echoing disabled:

char[] pass = console.readPassword("To finish, enter password: ");

Мы также можемuse the Console class to write output to the console, for example, using the printf() method с аргументомString:

console.printf(progLanguauge + " is very interesting!");

5. Заключение

В этой статье мы показали, как использовать несколько классов Java для ввода и вывода данных с консоли.

Как всегда, образцы кода из этого руководства предоставляютсяover on GitHub.