一連のオブジェクトを 1 つのオブジェクトに連結しようとしてい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());
}