我必须在 base64 中编码一个字节数组(即 Zipfile 的字节流),但数组太大。所以我把数组分成两部分,编码前半部分,然后编码第二部分,最后我将第二部分附加到第一部分。问题是,有时当我解码结果时,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);
问题是什么?是导致问题的分裂吗?