您如何使用 < 和 > 符号读取和写入在命令行上传递的文件?
这是命令:java Main < input.txt > output.txt
所以我想知道java文件中的代码会是什么样子。如何引用这些文件?
只是为了澄清,如果通过:我可以使用文件没有问题:java Main input.txt output.txt
但我目前仅限于使用尖括号。
您如何使用 < 和 > 符号读取和写入在命令行上传递的文件?
这是命令:java Main < input.txt > output.txt
所以我想知道java文件中的代码会是什么样子。如何引用这些文件?
只是为了澄清,如果通过:我可以使用文件没有问题:java Main input.txt output.txt
但我目前仅限于使用尖括号。
这些运算符意味着您要从读取输入input.txt
并将结果写入output.txt
.
遵循正常约定,<
isSystem.in
和>
is System.out
。但是,在这种情况下,仅将 String 传递给 System.in 可能不会达到您的预期
假设你在谈论 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。)