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);
}

代码说明:

  1. 方法定义:

    • 方法名:zipFiles
    • 参数:files(文件列表),zipFilePath(压缩包路径)
    • 异常:IOException
  2. 压缩过程:

    • 创建一个 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)。
Java 文件压缩:将文件列表压缩成 ZIP 压缩包

原文地址: https://www.cveoy.top/t/topic/em3F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录