Java 命令行尖括号

标签 java command-line io

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

这是命令: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/

相关文章:

java - 如何在java上整齐地提取子路径以考虑根文件夹和无根文件夹

java - 对于 3d 星空(在 JavaFX 中),使标签与观察者的视角保持一致

mysql - MySQL 命令行中的 ('>) 符号是什么意思?

vb.net - 异步 PDF 创建的 IOException 问题

java - 如何将输出写入控制台和文件?

java - 在线存储java对象

java - 在Java中使用子对象作为父对象属性是不好的做法吗?

java - 如何使用 Tracer 在 Camel 中记录流的主体?

php - 如何从命令行执行类中的方法

command-line - 如何通过命令行为 iOS 开发安装开发人员证书/私钥和配置文件?