5

某些 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

这个 SO 讨论中也提到了这一点,除了使用System.in之外,没有提供任何替代方案。

4

1 回答 1

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);
    }
}

密码相关功能应手动完成。

于 2013-01-31T13:40:47.617 回答