コマンドラインツールで、プロンプトを表示してユーザからの入力を読み取りたいときに。
JDK1.5まで:System.inから読み取る方式。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("prompot:>"); String input = br.readLine().trim(); System.out.println("Input = [" + input + "]");
JDK1.6から:標準入力がコマンドプロンプトやターミナルであれば、System.console()が返すjava.io.Consoleクラスのインスタンスでプロンプト表示+一行入力読み取りのショートカットが提供されてる。
Console console = System.console(); if (null == console) { System.out .println("'System.console()' returns null, Console is disabled."); } else { console.printf("Console Output Example %s%n", "abcdefg"); String input = console.readLine("[%s %s]>", "abc", "def"); console.printf("Input = [%s]%n", input); char[] password = console.readPassword("input dummy password>"); console.printf("Input Password = [%s]%n", new String(password)); }
注意点:
サンプル(JDK 1.7で確認):
参考資料:
コメント