Чтение и запись пользовательского ввода в 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.