【发布时间】:2015-12-24 18:44:55
【问题描述】:
我在 Android 应用中使用 ZipOutputStream 来打包和导出 mp3 文件。打包和导出似乎工作正常,提取文件后,它们无法播放。在输出上运行file 命令将文件类型显示为data。在压缩之前,文件类型被列为Audio。
这是我用来压缩文件的代码:
protected File compressFiles(File outputFile, File... inputFiles) {
int bufferSize = 1024 * 4; // 4KB
ZipOutputStream zipOutputStream = null;
try {
OutputStream fileOutputStream = new FileOutputStream(outputFile);
zipOutputStream = new ZipOutputStream(new BufferedOutputStream(fileOutputStream));
int count = inputFiles.length;
File file = null;
for (int i = 0; i < inputFiles.length; i++) {
file = inputFiles[i];
String fileName = file.getName();
ZipEntry entry = new ZipEntry(fileName);
entry.setTime(file.lastModified());
FileInputStream inputStream = new FileInputStream(file);
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
zipOutputStream.putNextEntry(entry);
byte[] buffer = new byte[bufferSize];
int bytesRead;
while ((bytesRead = bufferedInputStream.read()) != -1) {
zipOutputStream.write(buffer, 0, bytesRead);
}
zipOutputStream.closeEntry();
inputStream.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (zipOutputStream != null) {
try {
zipOutputStream.finish();
// zipOutputStream.flush();
zipOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return outputFile;
}
【问题讨论】:
标签: java android zip zipoutputstream