如何使用 < 和 > 符号读取和写入在命令行上传递的文件?
这是命令:java Main < input.txt > output.txt
所以我想知道java文件中的代码是什么样的。我如何引用这些文件?
为了澄清,如果通过:java Main input.txt output.txt
,我可以毫无问题地使用文件:
但我目前只能使用尖括号。
最佳答案
假设您正在谈论 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。)
关于Java 命令行尖括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16132704/