Рубрики

Способы чтения ввода из консоли в Java

В Java существует три различных способа чтения ввода от пользователя в среде командной строки (консоли).

1. Использование буферизованного класса Reader

Это классический метод Java для ввода данных, представленный в JDK1.0. Этот метод используется для переноса System.in (стандартный поток ввода) в InputStreamReader, который обернут в BufferedReader, мы можем прочитать ввод от пользователя в командной строке.

    преимущества

  • Ввод буферизован для эффективного чтения.
    недостаток:

  • Код упаковки трудно запомнить.

Программа:

// Java-программа для демонстрации BufferedReader

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class Test 

{

    public static void main(String[] args) throws IOException 

    {

        // Ввод данных с использованием BufferReader

        BufferedReader reader = 

                   new BufferedReader(new InputStreamReader(System.in));

         

        // Чтение данных с использованием readLine

        String name = reader.readLine();

  

        // Печать строки чтения

        System.out.println(name);        

    }

}

Входные данные:

Geek

Выход:

Geek

Примечание. Для чтения других типов мы используем такие функции, как Integer.parseInt (), Double.parseDouble (). Чтобы прочитать несколько значений, мы используем split ().

2. Использование класса сканера

Это, вероятно, наиболее предпочтительный метод для ввода. Основное назначение класса Scanner — анализировать примитивные типы и строки с использованием регулярных выражений, однако его также можно использовать для чтения ввода от пользователя в командной строке.

    Преимущества:

  • Удобные методы для анализа примитивов (nextInt (), nextFloat (),…) из входных данных с токенами.
  • Регулярные выражения можно использовать для поиска токенов.
    недостаток:

  • Методы чтения не синхронизированы

Чтобы увидеть больше различий, пожалуйста, смотрите эту статью.

// Java-программа для демонстрации работы сканера на Java

import java.util.Scanner;

  

class GetInputFromUser

{

    public static void main(String args[])

    {

        // Использование сканера для получения ввода от пользователя

        Scanner in = new Scanner(System.in);

  

        String s = in.nextLine();

        System.out.println("You entered string "+s);

  

        int a = in.nextInt();

        System.out.println("You entered integer "+a);

  

        float b = in.nextFloat();

        System.out.println("You entered float "+b);

    }

}

Входные данные:

GeeksforGeeks
12
3.4

Выход:

You entered string GeeksforGeeks
You entered integer 12
You entered float 3.4

3. Использование консольного класса

Это стало предпочтительным способом для чтения ввода пользователя из командной строки. Кроме того, его можно использовать для чтения ввода пароля, не повторяя символы, введенные пользователем; также можно использовать синтаксис строки формата (например, System.out.printf ()).
Преимущества:

  • Чтение пароля без повторения введенных символов.
  • Методы чтения синхронизированы.
  • Можно использовать синтаксис форматной строки.
    недостаток:

  • Не работает в неинтерактивной среде (например, в IDE).

// Java-программа для демонстрации работы System.console ()
// Обратите внимание, что эта программа не работает в IDE, так как
// System.console () может потребоваться консоль

public class Sample 

{

    public static void main(String[] args) 

    {        

        // Использование консоли для ввода данных от пользователя

        String name = System.console().readLine();

          

        System.out.println(name);

    }

}

Пожалуйста, обратитесь к этому для более быстрых способов чтения ввода.

Эта статья предоставлена Д. Радж Рану . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью, используя contrib.geeksforgeeks.org, или отправить свою статью по электронной почте на адрес contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Способы чтения ввода из консоли в Java

0.00 (0%) 0 votes