将 "virtual" 文件传递​​给 Java 中的进程

Passing "virtual" file to a Process in Java

是否可以在 Java 中创建一个 "virtual" 文件并将其作为参数传递给 Process/ProcessBuilder?

假设我想调用带有参数 arg 的外部 .exe 文件 (Windows)。 arg 必须是硬盘上的文件。以下面的代码为例:

Process p = Runtime.getRuntime().exec("someProgram.exe -file " + arg)

那么,是否可以将 arg 创建为 "virtual" 文件并以这种方式将其传递给 Java 中的外部进程?如果是这样,我该如何实施? 我宁愿避免首先将文件写入硬盘,因为 HDD I/O 非常慢。

如果您已经有了数据,并且外部进程可以接受来自标准输入的数据,您可以将数据直接流式传输到进程中,完全跳过文件写入。

您可以从进程中获取输入流,并查看 Java 中的 Pipe[Input|Output]Stream 以将它们连接在一起。