バイト配列 (Zipfile のバイト ストリーム) を base64 でエンコードする必要がありますが、配列が大きすぎます。そこで、配列を 2 つの部分に分割し、前半をエンコードしてから後半をエンコードし、最後に 2 番目の部分を最初の部分に追加します。問題は、結果をデコードすると、zipfile が破損しているように見えることがあります。
FileInputStream fis = new FileInputStream(new File(filePath));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((len = fis.read(buffer)) >= 0) {
baos.write(buffer);
}
byte[] bArray = baos.toByteArray();
int bArrayLength = bArray.length;
byte[] part1 = new byte[bArray.length / 2];
byte[] part2 = new byte[ (bArrayLength%2 == 0) ? (bArray.length / 2) : (bArray.length / 2 + 1)];
System.arraycopy(bArray, 0, part1, 0, part1.length);
System.arraycopy(bArray, part1.length, part2, 0, part2.length);
resultArray[0] = Base64.encodeBytes(part1);
resultArray[1] = Base64.encodeBytes(part2);
何が問題ですか?問題の原因はその分割ですか?