我正在测试需要在 Java 学校项目中实现的一小段代码。
public class Prova {
public static void main(String[] args){
System.out.println(args.length);
for(int i = 0; i < args.length; i++){
System.out.print(args[i]);
}
System.out.print("\nEnd!");
}
}
当我在控制台输入java Prova < test.dot
时而 test.dot
的内容文件是:
digraph G1 {
c -> e;
a -> e;
a -> f;
f -> b;
g;
}
我刚刚得到这个:
C:\Users\Lorenzo\workspace\Progetto_ASD\bin>java Prova < test.dot
0
End!
我尝试过java Prova > output.txt
只是为了看看管道是否工作并且它确实工作(我得到与上面相同的结果,但在一个文件中)。
如果我尝试 type test.dot
我得到:
C:\Users\Lorenzo\workspace\Progetto_ASD\bin>type test.dot
digraph G1 {
c -> e;
a -> e;
a -> f;
f -> b;
g;
}
正如我所料。
我真的不知道我正在做的事情出了什么问题(顺便说一句,我正在使用 Windows)。
最佳答案
您正在混合两种不同的方法:
args
您应该将程序运行为
java Prova arg1 arg2 ... argn
:java Prova "digraph G1 {" "c -> e;" "a -> e;" "a -> f;" "f -> b;" g; }
也许你想改变
System.out.print(args[i]);
到
System.out.println(args[i]);
有 7 条不同的线路。
重定向
这相当于一个接受您键盘输入的程序。您可以将程序更改为如下所示:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Prova { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line; try { while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
然后调用
java Prova < test.dot
.
关于java - 文件内容重定向到 args 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40440375/