如何将字节数组写入流程构建器的 OutputStream (Java)

Arr*_*abe 7 java io iostream

byte[] bytes = value.getBytes();
Process q = new ProcessBuilder("process","arg1", "arg2").start();
q.getOutputStream().write(bytes);
q.getOutputStream().flush();
System.out.println(q.getInputStream().available());
Run Code Online (Sandbox Code Playgroud)

我正在尝试将文件内容流式传输到可执行文件并捕获输出,但输出(InputStream)始终为空。如果我指定文件位置而不是流输入,我可以捕获输出。

我怎样才能克服这个问题?

Ber*_*ann 0

我不知道这里是否还有其他问题,但另一个进程(“进程”)甚至没有时间响应,你没有等待它(方法 available() 不会阻塞)。要尝试这个,您可以首先在flush()之后插入一个sleep(2000),如果有效,您应该切换到多次查询q.getInputStream().available() ,中间有短暂的暂停。