java - 字节数组作为外部程序的标准输入/输出。

标签 java process stream arrays nio

我有一个输入字节数组,我想将其提供给外部程序 (Process) 的标准输入。另外,我想将输出收集到一个字节数组中。

最优雅的方法是什么? PipedInputStream/PipedOutputStream? nio.channels.Pipe?

示例代码会更好,因为我真的不知道如何以一种好的方式做到这一点......

最佳答案

管道用于 Java 中的线程之间。它们不是此解决方案的一部分。要将字节数组写入进程,只需根据需要经常调用 Process.getOutputStream.write(byte[])。要将其读入字节数组,只需调用 Process.getInputStream.read(byte[])。如果您不知道会有多少输出,请将其复制到 ByteArrayOutputStream。

关于java - 字节数组作为外部程序的标准输入/输出。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6882217/

相关文章:

java - 输入对话框循环提前结束

java - Android VoIP通话实现

java - Spring Cloud配置客户端启动后立即关闭

multithreading - 进程、线程、绿色线程、原型(prototype)线程、纤维、协程 : what's the difference?

java - Imagebutton 一个在另一个上面不能点击另一个下面的那个 - Scene2d LIBGDX

java - 如何在 Java 中检索正在运行的进程的工作目录?

java - Android:不断获取日志

c# - 你怎么知道流是否关闭?

javascript - 如何正确响应 Node.js 流管道中的错误事件?

ios - 将二进制信息保存到文件