Javaでは、コンソールからの入力を読み取る3つの方法があります。

  1. BufferedReader InputStreamReader(Classic)

  2. スキャナ(JDK 1.5)

  3. System.console(JDK 1.6)

1. BufferedReader InputStreamReader

経験豊富なJava開発者にとっては、システム入力を読み取るこの古典的な方法が欠けています。

ReadConsole.java

package com.mkyong;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReadConsole {

    public static void main(String[]args) {

        BufferedReader br = null;

        try {

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

            while (true) {

                System.out.print("Enter something : ");
                String input = br.readLine();

                if ("q".equals(input)) {
                    System.out.println("Exit!");
                    System.exit(0);
                }

                System.out.println("input : " + input);
                System.out.println("-----------\n");
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

}

出力

Enter something : old and classic
input : old and classic
-----------

何かを入力してください:q終了!

2. Scanner

In JDK 1.5, the developer starts to use

java.util.Scanner

to read
system input.

ReadConsole2.java

パッケージcom.mkyong;

パブリッククラスReadConsole2 {

public static void main(String[]args){

スキャナスキャナ=新しいスキャナ(System.in);

while(true){

System.out.print( "何かを入力:");文字列入力= scanner.nextLine();

if( "q" .equals(input)){System.out.println( "Exit!");ブレーク; }

System.out.println( "input:" input); System.out.println( "----------- \ n"); }

scanner.close();

}

}

出力

何かを入力してください:hello jdk 1.5
入力:hello jdk 1.5
-----------

何かを入力してください:スキャナの例
入力:スキャナの例
-----------

何かを入力してください:q終了!

3. System.console

In JDK 1.6, the developer starts to switch to the more simple and
powerful

java.io.Console

class.

ReadConsole3.java

パッケージcom.mkyong;

パブリッククラスReadConsole3 {

public static void main(String[]args){

while(true){

System.out.print( "何かを入力:"); String input = System.console()。readLine();

if( "q" .equals(input)){System.out.println( "Exit!"); System.exit(0); }

System.out.println( "input:" input); System.out.println( "----------- \ n"); }

}

}

出力

何かを入力してください:hello jdk 1.6
入力:hello jdk 1.6
-----------

何かを入力:コンソールの例
入力:cosoleの例
-----------

何かを入力してください:q終了!