是否可以在Java中创建“虚拟”文件并将其作为参数传递给Process / ProcessBuilder?
假设我想使用参数arg
调用外部.exe文件(Windows)。 arg
必须是硬盘上的文件。请考虑以下代码作为示例:
Process p = Runtime.getRuntime().exec("someProgram.exe -file " + arg)
那么,是否可以将arg
创建为“虚拟”文件并以这种方式将其传递给Java中的外部进程?如果是这样,我该如何实施呢?
我宁愿首先避免将文件写入硬盘,因为HDD I / O非常慢。
答案 0 :(得分:0)
如果您已经拥有数据,并且外部流程可以接受来自标准输入的数据,您可以直接将数据流式传输到流程中,完全跳过文件写入。
您可以从Process获取输入流,并查看Java中的Pipe [Input | Output] Stream以将它们组合在一起。