В этой статье мы разберёмся, как считывать информацию из консоли Консоль – это стандартный поток ввода-вывода. Чтобы читать данные из консоли, мы воспользуемся двумя разными классами из стандартной библиотеки Java.
Способ 1: Чтение из консоли с помощью System.in.read
Простейший способ чтения данных из консоли – это метод System.in.read(). Данный метод позволяет считывать данные по одному коду. Это блокирующий метод, то есть, вызвав его, выполнение программы продолжится только тогда, когда будет введён какой-либо символ в консоль:
int code = System.in.read(); char c = (char) code; System.out.println("Вы ввели: " + c + ", код символа: " + code);
Это очень простой способ чтения из консоли и есть более удобные способы чтения.
Способ 2: Чтение из консоли с помощью Scanner
Класс java.util.Scanner предоставляет несколько удобных методов для чтения из консоли:
- hasNextInt() – вернёт true, если из консоли сейчас возможно вычитать целое число
- nextInt() – вычитает целое число из консоли
- hasNextDouble() – вернёт true, если из консоли сейчас возможно вычитать число типа double
- nextDouble() – вычитает вещественное число из консоли
- hasNextLine() – вернёт true, если из консоли возможно считать какие-либо символы
- nextLine() – вычитывает строку из консоли
Все эти методы являются блокирующими.
В данном примере мы проверяем, доступно ли в консоли целое число и если да, то снова выводим его в консоль:
Scanner scanner = new Scanner(System.in); System.out.print("Введите целое число: "); if (scanner.hasNextInt()) { int i = scanner.nextInt(); System.out.println(i); } else { System.out.println("Вы ввели не целое число"); }
Аналогично используются методы hasNextDouble()/nextDouble() для вещественных чисел и методы hasNextLine()/nextLine() для строк.
Заключение
В данной статье мы разобрались, как вычитывать данные из стандартного потока вывода. Теперь вы знаете, как вычитать из консоли числа, символы и строки.
Исходный код
import java.io.IOException; public class ReadFromConsoleIn { public static void main(String[] args) throws IOException { int code = System.in.read(); char c = (char) code; System.out.println("Вы ввели: " + c + ", код символа: " + code); } }
public class ReadFromConsoleScanner { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Введите целое число: "); if (scanner.hasNextInt()) { int i = scanner.nextInt(); System.out.println(i); } else { System.out.println("Вы ввели не целое число"); } } }