过程输出是否以EOF结束,如果是,如何删除?

时间:2014-03-16 09:45:59

标签: java linux scala ipc

我有一个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个输出。

1 个答案:

答案 0 :(得分:1)

EOF不是一个字符,它是一个带外条件,表明输入流是空的。你可以"删除"它只是继续将内容写入流。