某些Java库中是否有一个实用程序类,提供java.io.Console的设施,但与Bash管道重定向输入兼容?
以下代码:
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
除了使用 System.in 之外,还提到了in this SO discussion而没有提供任何替代方法。
答案 0 :(得分: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);
}
}
密码相关功能应手动完成。