使用java导出zip压缩包并输出路径

该代码示例展示了一个Java方法,用于将一个包含文件路径的ArrayList列表打包成ZIP压缩文件。程序首先检查文件列表是否为空,然后创建ZIP输出流,遍历文件列表,将每个文件添加到压缩包中,最后关闭流并返回压缩文件的路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述


	public static void main(String[] args) {
        ArrayList<String> fileList = new ArrayList<>();

        fileList.add("D:\\桌面\\a.txt");
        fileList.add("D:\\桌面\\b.txt");

        String s = createZipFile(fileList, "D:\\桌面", "压缩");
        System.out.println(s);
    }

    public static String createZipFile (List<String> fileList, String zipFilePath, String zipFileName) {
            if ((fileList == null) || (fileList.size() == 0)) {
                return null;
            }
            // 构建压缩文件File
            File zipFile = new File(zipFilePath + "\\" + zipFileName + ".zip");
            // 初期化ZIP流
            ZipOutputStream out = null;
            try {
                // 构建ZIP流对象
                out = new ZipOutputStream(new FileOutputStream(zipFile));
                // 循环处理传过来的集合
                for (int i = 0; i < fileList.size(); i++) {
                    // 获取目标文件
                    File inFile = new File(fileList.get(i));
                    if (inFile.exists()) {
                        // 定义ZipEntry对象
                        ZipEntry entry = new ZipEntry(inFile.getName());
                        // 赋予ZIP流对象属性
                        out.putNextEntry(entry);
                        int len = 0;
                        // 缓冲
                        byte[] buffer = new byte[1024];
                        // 构建FileInputStream流对象
                        FileInputStream fis;
                        fis = new FileInputStream(inFile);
                        while ((len = fis.read(buffer)) > 0) {
                            out.write(buffer, 0, len);
                            out.flush();
                        }
                        // 关闭closeEntry
                        out.closeEntry();
                        // 关闭FileInputStream
                        fis.close();
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    // 最后关闭ZIP流
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return zipFilePath + "\\" + zipFileName + ".zip";
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李子木、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值