Вывод и ввод данных в консоль Java

Консоль (console) в Java обеспечивает простое и удобное взаимодействия с пользователем. С помощью консоли можно выводить какую-нибудь информацию либо, напротив, используя консоль, считывать данные. В этой статье будет рассказано о том, как осуществляется ввод и вывод данных в консоли Java.

Чтобы обеспечивать взаимодействие с консолью, в языке программирования Java используют класс System.

Вывод на консоль в Java

Чтобы создать потока вывода в вышеупомянутый класс System, вам понадобится специальный объект out. В нём определен метод println, обеспечивающий вывод значения на консоль и перевод курсора консоли на другую строку.

Рассмотрим практический пример с Hello world:

    public class Main {

    public static void main(String[] args) {

        System.out.println("Привет, мир!");
        System.out.println("Пока, мир...");
    }
}

Что здесь происходит? В метод println осуществляется передача значения (в нашем случае это строка), которое пользователь желает вывести в консоль Java. Консольный вывод данных в Джава будет следующий:

Привет, мир!                                                                                                                  
Пока, мир... 

Выполнять перевод строки не обязательно. Если необходимость в этом отсутствует, применяют метод System.out.print(). Он аналогичен println, но перевод каретки на следующую строку не выполняется.

    public class Main {

    public static void main(String[] args) {

        System.out.print("Привет, мир!");
        System.out.print("Пока, мир...");
    }
}

Вывод в консоли Java:

Привет, мир!Пока, мир...                                                                                                      

Однако никто не мешает, используя System.out.print, всё же выполнить перенос на следующую строку. Как вариант — использование \n:

    System.out.print("Привет, мир! \n");

Также есть возможность подставить в строку Ява данные, которые объявлены в переменных. Вот, как это реализуется:

    public class Main {

    public static void main(String[] args) {

        int i = 10;
        int y = 99;
        System.out.println("i=" + i + "; y=" + y);
    }
}

В консоли увидим:

i=10; y=99  

Ещё в Java существует функция, предназначенная для форматирования вывода в консоли, —System.out.printf(). При использовании со спецификаторами, она позволяет добиться нужного формата вывода.

Спецификаторы: • %d — для вывода в консоль целочисленных значений; • %x — для 16-ричных чисел; • %f — выводятся числа с плавающей точкой; • %e — для чисел в экспоненциальной форме (1.3e+01); • %c — вывод в консоль одиночного символа; • %s — вывод в консоль строковых значений.

Рассмотрим, как это функционирует на практике:

    public class Main {

    public static void main(String[] args) {

        String name = "Bob";
        int age = 40;
        float height = 1.8f;

        System.out.printf("Name: %s  Age: %d  Height: %.2f \n", name, age, height);
    }
}

Когда осуществляется вывод в консоль Java значений с плавающей точкой, есть возможность задать количество знаков после запятой. Спецификатор %.2f (точнее, «.2») определяет, что будет 2 знака после запятой. Вывод в консоль Java будет следующим:

Name: Bob  Age: 40  Height: 1.80  

Ввод с консоли Java или как ввести данные с консоли Джавы

Чтобы обеспечить ввод с консоли Java, в классе System есть объект in. Именно через объект System.in работать не очень удобно, поэтому часто применяют класс Scanner. Он уже, в свою очередь, как раз таки и применяет System.in.

Рассмотрим практический пример:

    import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.print("Введите любой номер: ");
        int num = in.nextInt();

        System.out.printf("Ваш номер: %d \n", num);
        in.close();
    }
}

Сам по себе класс Scanner хранится в пакете java.util, поэтому в начале кода мы выполняем его импорт посредством команды import java.util.Scanner.

Для создания непосредственно объекта Scanner в его конструктор осуществляется передача объекта System.in. Далее можно получать значения. В нашей мини-программе сначала выводится просьба ввести номер, а потом введённое пользователем число помещается в переменную num (для получения введённого значения задействуется метод in.nextInt(), возвращающий набранное на клавиатуре целочисленное значение.

Лучше всего попробовать работу этой программы с помощью одного из многочисленных онлайн-компиляторов.

Работать она будет простейшим образом: 1. Сначала вы увидите сообщение в консоли «Введите любой номер:». 2. После ввода числа (пускай это будет 8) в консоли появится второе сообщение — «Ваш номер: 8».

Для класса Scanner предусмотрены и другие методы: • next() — для считывания введённой строки до первого пробела; • nextLine() — для всей введённой строки; • nextInt() — считывает введённое число int; • nextDouble() — для double; • nextBoolean() — для boolean; • nextByte() — для byte; • nextFloat() — для float; • nextShort() — для short.

Давайте напишем простую программу, обеспечивающую ввод информационных данных о человеке в консоль Java:

    import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.print("Введите имя: ");
        String name = in.nextLine();
        System.out.print("Введите возраст: ");
        int age = in.nextInt();
        System.out.print("Введите вес: ");
        float height = in.nextFloat();
        System.out.printf("Name: %s  Age: %d  Height: %.1f \n", name, age, height);
        in.close();
    }
}

В этой программке пользователь последовательно вводит данные разных типов: String, int и float. Потом вся информация выводится в консоль Java:

Введите имя: Андрей                                                                                                           
Введите возраст: 39                                                                                                           
Введите вес: 89                                                                                                               
Name: Андрей  Age: 39  Height: 89.0   

Вот и всё. Это базовые вещи, если же вас интересуют более продвинутые знания, записывайтесь на курс OTUS в Москве.