1

一連のオブジェクトを 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());
}
4

0 に答える 0