2013-01-31 9 views
5

java.io.Consoleのようなアメニティを提供するが、入力のBashパイプリダイレクトと互換性のあるJavaライブラリにはユーティリティクラスがありますか?stdinリダイレクトと互換性のあるjava.io.Consoleのようなユーティリティ?

次のコード:やったときに

import java.io.Console; 
public class Foo { 
    public static void main(String args[]) { 
    Console cons = System.console(); 
    String foo = cons.readLine(); // line-5 
    } 
} 

がライン-5にNPEがスローされます。

echo "test" | java Foo 

これはまた、任意の選択肢を提供せずにin this SO discussionを述べているがシステムの使用を節約します。にあります。

+0

ここで 'System.in'を使用すると何が問題になりますか?結局のところ、システム入力ストリーム( 'stdin'とも呼ばれます)はあなたの後ろにあります。 –

+0

System.inに何も問題ありません。私はケーキを食べて食べることができるかどうか疑問に思っていました。 –

答えて

3

は、以下のことを試してみてください。

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

public class Foo { 
    public static void main(String args[]) throws Exception { 
     BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
     String foo = in.readLine(); // line-5 
     System.out.println(foo); 
    } 
} 

パスワード関連の機能を手動で実行する必要があります。

関連する問題