将 "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 以将它们连接在一起。
是否可以在 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 以将它们连接在一起。