Чтение и запись в консоль с примерами

В этом руководстве по 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

Перечисленные выше методы чтения входных данных и записи выходных данных на консоль обеспечивают большую гибкость для чтения входных данных в различных форматах и различными способами.

Я предложу вам поиграться с данным кодом, чтобы лучше его понять.

Исходный код Скачать

Прокрутить вверх