写入操作后,ByteArrayOutputStream中缺少数据

时间:2014-06-04 08:45:48

标签: java concatenation bytearrayoutputstream

我试图将一系列ByteArrayOutputStream个对象连接成一个对象,但我无法捕获所有数据。出于某种原因,只有第一个write()操作有效(请参阅下面的代码),结果ByteArrayOutputStream具有修剪后的数据版本。我检查了输入列表是否完整(例如,如果我颠倒了连接的顺序,结果对象具有列表中最后一个元素的数据)。

我需要在write()操作之间进行其他函数调用,以确保实际复制字节数组吗?提前谢谢!

ArrayList<ByteArrayOutputStream> outputStreams = new ArrayList<ByteArrayOutputStream>();
ByteArrayOutputStream outputStreamAggregate = new ByteArrayOutputStream();

// ... add data to outputStreams ...

for(int i = 0; i < outputStreams.size(); i++) {
    outputStreamAggregate.write(outputStreams.get(i).toByteArray());
}

0 个答案:

没有答案