Java zip解析

Java zip解析
需求:项目中存在大量的模板需要更新替换,一个个手动更新效率太慢,所以需要做一个上传压缩包更新模板的功能。
代码: 压缩包解析 并返回相对路径和文件

	/**
     * 解压zip 范围对应路径和模板文件
     * @param zipName zip文件
     * @return
     */
    public Map<String, InputStream> upzipFile(File zipName) {
        Map<String, InputStream> map = new HashMap<>();
        try {
            // 根据zip文件创建ZipFile对象,此类的作用是从zip文件读取条目
            ZipFile zipFile = new ZipFile(zipName, Charset.forName("GBK"));
            ZipEntry zn = null;
            String entryName = null;
            // 获取zip文件里所有的文件条目的名字
            Enumeration entrys = zipFile.entries();
            // 循环遍历所有的文件条目的名字
            while (entrys.hasMoreElements()) {
                zn = (ZipEntry) entrys.nextElement();
                // 获得每一条文件的名字
                entryName = zn.getName();
                // 不是文件夹
                if (!zn.isDirectory()) {
                    // 存放文件的名字和文件
                    InputStream is = zipFile.getInputStream(zn);
                    // 名字是相对路径+文件名 如果不存在重名的情况下可以选择去掉相对路径只取名字
                    // String[] split = entryName.split("/");
                    // entryName = split[split.length - 1];
                    map.put(entryName, is);
                }
            }
            System.err.println("------------------------------------解析"+zipName+"成功!");
        } catch (IOException err) {
            System.err.println("------------------------------------解析"+zipName+"失败: " + err);
        }
        return map;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值