我必须从服务器获取 zip 文件到 Android 手机,编码为 Base64。因为文件很大(〜20MB),我使用下面的代码通过bufferSize = 1024 * 1024获取字符串,对其进行编码并将其写入文件。我通过方法 android.util.Base64.encode() 得到 bad-base64 错误。为什么?
编码:
int bufferSize = 1024 * 1024;
byte[] buffer = new byte[bufferSize];
FileOutputStream fileOutputStream = null;
InputStream inputStream = null;
try {
fileOutputStream = new FileOutputStream(this.path + "/" + this.zipFileName);
inputStream = connection.getInputStream();
int bytesRead;
//read bytes
while ((bytesRead = inputStream.read(buffer, 0, bufferSize)) > 0) {
byte[] zipBytes = Base64.decode(buffer, 0, bytesRead, Base64.DEFAULT);
fileOutputStream.write(zipBytes);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (inputStream != null) {
try {
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}