В этом руководстве по Java вы узнаете о различных способах чтения и записи в системную консоль. Консоль обычно связана с процессами Java, которые запускаются с помощью инструмента командной строки.
Важно отметить, что если процесс Java запустился автоматически(например, фоновая задача), консоль может быть недоступна для ввода и вывода. В таких случаях System.console() вернет null.
1. Чтение входных данных с консоли
По умолчанию для чтения из системной консоли мы можем использовать класс Console. Этот класс предоставляет методы для доступа к символьной консоли, если таковая имеется, связанной с текущим процессом Java. Чтобы получить доступ к Console, вызовите метод System.console().
Консоль предоставляет три способа чтения ввода:
- String readLine() – считывает одну строку текста из консоли.
- char[] readPassword() – считывает пароль или зашифрованный текст с консоли с отключенным эхом
- Reader reader() – извлекает объект Reader, связанный с этой консолью. Предполагается, что этот считыватель будет использоваться сложными приложениями. Например, объект Scanner, который использует богатую функциональность парсинга/сканирования поверх базового Reader.
1.1 Чтение ввода с помощью readLine()
Console console = System.console();if(console == null) {System.out.println("Console is not available to current JVM process");return;}String userName = console.readLine("Enter the username: ");System.out.println("Entered username: " + userName);
Вывод программы
Enter the username: lokeshEntered username: lokesh
1.2 Чтение ввода с помощью readPassword()
Console console = System.console();if(console == null) {System.out.println("Console is not available to current JVM process");return;}char[] password = console.readPassword("Enter the password: ");System.out.println("Entered password: " + new String(password));
Вывод программы
Enter the password: //input will not visible in the consoleEntered password: passphrase
1.3. Чтение ввода с помощью reader()
Console console = System.console();if(console == null) {System.out.println("Console is not available to current JVM process");return;}Reader consoleReader = console.reader();Scanner scanner = new Scanner(consoleReader);System.out.println("Enter age:");int age = scanner.nextInt();System.out.println("Entered age: " + age);scanner.close();
Вывод программы
Enter age:12Entered age: 12
2. Запись вывода на консоль
Самый простой способ записать выходные данные на консоль — это операторы System.out.println(). Тем не менее, мы можем использовать методы printf() для записи форматированного текста на консоль.
2.1 Запись с помощью System.out.println
System.out.println("Hello, world!");
Вывод программы
Hello, world!
2.2 Запись с помощью printf()
Метод printf(String format, Object… args) принимает выходную строку и несколько параметров, которые подставляются в заданную строку для создания форматированного выходного содержимого. Этот форматированный вывод записывается в консоль.
String name = "Lokesh";int age = 38;console.printf("My name is %s and my age is %d", name, age);
Вывод программы
My name is Lokesh and my age is 38
Перечисленные выше методы чтения входных данных и записи выходных данных на консоль обеспечивают большую гибкость для чтения входных данных в различных форматах и различными способами.
Я предложу вам поиграться с данным кодом, чтобы лучше его понять.