java.io.Console – 与stdin重定向兼容的实用程序?

前端之家收集整理的这篇文章主要介绍了java.io.Console – 与stdin重定向兼容的实用程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在一些 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而没有提供任何替代方案.

解决方法

请尝试以下方法
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);
    }
}

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

猜你在找的Java相关文章