如何使用<读取和写入在命令行上传递的文件?和>符号
这是命令:java Main < input.txt > output.txt
所以我想知道java文件中的代码是什么样的。我如何引用这些文件?
只是为了澄清,我可以使用文件,如果传递给java Main input.txt output.txt
没问题
但我目前限制使用尖括号。
答案 0 :(得分:1)
这些运算符意味着您希望读取来自input.txt
的输入并将结果写入output.txt
。
答案 1 :(得分:1)
遵循常规约定,<
为System.in
,>
为System.out
。 但是,在这种情况下,只将String传递给System.in可能不会达到预期的效果
答案 2 :(得分:1)
假设你在谈论Linux / Unix / Bsd ......
<
和>
重定向由shell本身处理。在调用Java应用程序时,shell已经找出路径名解析的内容,打开它们,并将它们连接到用于System.in
和System.out
的文件描述符。
因此,您只需将程序编码为从System.in
读取并写入System.out
。
(如果您的应用程序是管道的一部分,同样的原则适用,并且如果FD#2被重定向,那么它将连接到System.err
。唯一不直接的是如果你做了一些不寻常的事情这样:
java Main < input.txt 3> output.txt
这会将FD#3重定向到一个文件。 AFAIK,没有简单的方法可以从Java写入超过2的FD。)