流程需要重定向输入

ini*_*ero 7 java processbuilder

我有一个UNIX本机可执行文件,需要像这样输入参数

prog.exe <foo.txt.

foo.txt有两行:bar baz

我正在使用java.lang.ProcessBuilder来执行此命令.不幸的是,prog.exe只能使用文件中的重定向.有什么方法可以模仿Java中的这种行为吗?

当然,

ProcessBuilder pb = new ProcessBuilder("prog.exe", "bar", "baz"); 
Run Code Online (Sandbox Code Playgroud)

不起作用.

谢谢!

Mar*_*arc 9

ProcessBuilder pb = new ProcessBuilder("prog.exe");
Process p = pb.start();
OutputStream pos = p.getOutputStream();

InputStream fis = new FileInputStream("file.txt");
byte[] buffer = new byte[1024];
int read = 0;
while((read = fis.read(buffer)) != -1) {
    pos.write(buffer, 0, read);
}
fis.close();
Run Code Online (Sandbox Code Playgroud)

未经测试,但这样的事情应该有效.