Java命令行尖括号

时间:2013-04-21 15:18:02

标签: java command-line io

如何使用<读取和写入在命令行上传递的文件?和>符号

这是命令:java Main < input.txt > output.txt

所以我想知道java文件中的代码是什么样的。我如何引用这些文件?

只是为了澄清,我可以使用文件,如果传递给java Main input.txt output.txt没问题 但我目前限制使用尖括号。

3 个答案:

答案 0 :(得分:1)

这些运算符意味着您希望读取来自input.txt的输入并结果写入output.txt

答案 1 :(得分:1)

遵循常规约定,<System.in>System.out但是,在这种情况下,只将String传递给System.in可能不会达到预期的效果

答案 2 :(得分:1)

假设你在谈论Linux / Unix / Bsd ......

<>重定向由shell本身处理。在调用Java应用程序时,shell已经找出路径名解析的内容,打开它们,并将它们连接到用于System.inSystem.out的文件描述符。

因此,您只需将程序编码为从System.in读取并写入System.out

(如果您的应用程序是管道的一部分,同样的原则适用,并且如果FD#2被重定向,那么它将连接到System.err。唯一不直接的是如果你做了一些不寻常的事情这样:

   java Main < input.txt 3> output.txt

这会将FD#3重定向到一个文件。 AFAIK,没有简单的方法可以从Java写入超过2的FD。)