В этом уроке Java мы научимся читать текст пользовательского ввода с консоли в Java. Чтение ввода с консоли в программах может быть необходимо для того, чтобы сделать приложения интерактивными.
1. Использование консоли
Класс Console взят из пакета java.io и используется для чтения и записи в символьную консоль.
System.console() используется для получения ссылки на системную консоль. Обратите внимание, что если JVM была запущена с фоновым заданием, то у программы не будет консоли. В этом случае вызов метода System.console() вернет null.
- Функция readLine() считывает одну строку текста с консоли.
- Функция readLine(line) записывает строку в консоль, а затем считывает пользовательский ввод с консоли.
- readPassword() используется для чтения защищенного ввода. Например, паролей и ключей шифрования.
- readPassword(line) выводит строку в консоль и считывает безопасный пользовательский ввод. Например, пароли и ключи шифрования.
- Передача нулевого аргумента любому методу в этом классе приведет к возникновению исключения NullPointerException.
Консоль console = System.console();String inputString = console.readLine("Введите свое имя: ");System.out.println("Введенное имя: " + inputString);
Вывод программы:
Enter Your Name: LokeshThe name entered: Lokesh
2. Использование BufferedReader
BufferedReader поддерживается с Java 1.1. Мы можем увидеть его использование в устаревших приложениях Java. Для чтения консольного ввода мы обернем System.in(стандартный поток ввода) в InputStreamReader, который снова обернут в класс BufferedReader.
BufferedReader считывает текст с консоли, буферизуя символы, чтобы обеспечить эффективное чтение пользовательского ввода. Это делает операции чтения из InputStreamReader менее затратными.
System.out.print("Enter Your Name: "); //PromptBufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));String inputString = bufferRead.readLine();System.out.println("The name entered: " + inputString);
Вывод программы:
Enter Your Name: LokeshThe name entered: Lokesh
3. Использование сканера
В Java System.in представляет стандартный ввод. По умолчанию это системная консоль.
Класс Scanner при чтении с консоли предоставляет методы для чтения различных типов данных, например, целых чисел, чисел, строк и т. д.
Scanner scanner = new Scanner(System.in);System.out.println("Enter name, age and salary:");String name = scanner.nextLine();int age = scanner.nextInt();double salary = scanner.nextDouble();System.out.println("Name: " + name);System.out.println("Age: " + age);System.out.println("Salary: " + salary);
Прежде всего, все методы одинаково эффективны, но лично мне нравится способ java.io.Console. Он просто делает код более читабельным. Каков ваш выбор для чтения теста из Console в Java.