Java 文件压缩:将文件列表压缩成 ZIP 压缩包
public void zipFiles(List<File> files, String zipFilePath) throws IOException {
Log.e("测试====", "开始压缩文件===========" + zipFilePath);
byte[] buffer = new byte[1024];
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFilePath));
for (File file : files) {
FileInputStream fis = new FileInputStream(file);
out.putNextEntry(new ZipEntry(file.getName()));
int len;
while ((len = fis.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.closeEntry();
fis.close();
}
out.close();
Log.e("测试====", "压缩文件完成=====22===========" + zipFilePath);
}
代码说明:
-
方法定义:
- 方法名:
zipFiles - 参数:
files(文件列表),zipFilePath(压缩包路径) - 异常:
IOException
- 方法名:
-
压缩过程:
- 创建一个
ZipOutputStream对象,用于写入压缩文件。 - 遍历文件列表,对每个文件进行以下操作:
- 创建一个
FileInputStream对象读取文件。 - 创建一个
ZipEntry对象,设置压缩文件条目名称。 - 使用
out.putNextEntry()将压缩条目写入压缩流。 - 使用循环读取文件数据,并写入压缩流。
- 使用
out.closeEntry()关闭当前条目。 - 关闭
FileInputStream对象。
- 创建一个
- 最后,关闭
ZipOutputStream对象,完成压缩。
- 创建一个
使用示例:
List<File> files = Arrays.asList(new File("file1.txt"), new File("file2.jpg"));
String zipFilePath = "myzip.zip";
zipFiles(files, zipFilePath);
注意:
- 该代码示例使用了
Log.e方法输出日志信息,可以根据需要修改或删除。 - 确保目标压缩包路径存在,否则可能会出现异常。
- 可以根据需要修改缓冲区大小(
buffer)。
原文地址: https://www.cveoy.top/t/topic/em3F 著作权归作者所有。请勿转载和采集!