我有一个Scala应用程序,它执行了N次外部进程(使用不同的参数),每次都收集一个Array[Byte]
,然后将其聚合为N个Array[Byte]
输出的集合。问题是每个过程输出Array[Byte]
是否会以EOF结束?如果有,怎样才能去除呢?我在Scala中使用以下代码完成此操作:
// redirect output stream of the external process
val outputStream = new java.io.ByteArrayOutputStream()
val bufferedOutputStream = new java.io.BufferedOutputStream(outputStream, 1024)
// execute external process
val exitCode : Integer = processBuilder #> bufferedOutputStream !
bufferedOutputStream.flush
// read the content of the output stream as a byte array
val content = outputStream.toByteArray // this gives an Array[Byte]
我需要将每个输出作为输入发送到第三个应用程序。因此,我需要删除部分EOF分隔符,否则将导致第三个应用程序无法读取N个输出。
EOF不是一个字符,它是一个带外条件,表示输入流为空。您可以通过继续向流写入内容来"删除"它。