В этой статье мы разберёмся, как считывать информацию из консоли Консоль – это стандартный поток ввода-вывода. Чтобы читать данные из консоли, мы воспользуемся двумя разными классами из стандартной библиотеки 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("Вы ввели не целое число");
        }
    }
}

Чтение из консоли