JAVA:如何通过重定向从控制台获取输入
很抱歉打扰你们,但我找不到答案时,做了大量的搜索 这是我的代码,非常简单:JAVA:如何通过重定向从控制台获取输入,java,redirect,io,inputstream,Java,Redirect,Io,Inputstream,很抱歉打扰你们,但我找不到答案时,做了大量的搜索 这是我的代码,非常简单: import java.io.IOException; import java.io.ObjectInputStream; public class Test { public static void main(String[] args) { System.out.println(args.length); ObjectInputStream is; try {
import java.io.IOException;
import java.io.ObjectInputStream;
public class Test {
public static void main(String[] args) {
System.out.println(args.length);
ObjectInputStream is;
try {
is = new ObjectInputStream(System.in);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String input = System.console().readLine();
System.out.println("input: " + input);
}
}
使用类似于:javatest的命令,所有东西都可以找到,我可以通过键入一些东西从控制台获取输入。
但是,由于命令中存在重定向,我无法在控制台上键入输入,应用程序将立即返回
java Test /d/aa.dat < /d/example.dat
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:17)
java测试/d/aa.dat
我认为根本原因是当我在命令行中对文件使用重定向时,默认的System.in被文件“example.dat”覆盖
我的问题是如何恢复默认System.in以允许用户从控制台输入
非常感谢。看,这根本不可能。这里有一个解释:这是不可能的。请参考链接了解说明,