将“虚拟”文件传递给Java中的Process

时间:2016-09-24 21:36:52

标签: java processbuilder

是否可以在Java中创建“虚拟”文件并将其作为参数传递给Process / ProcessBuilder?

假设我想使用参数arg调用外部.exe文件(Windows)。 arg必须是硬盘上的文件。请考虑以下代码作为示例:

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

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

1 个答案:

答案 0 :(得分:0)

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

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