zoukankan      html  css  js  c++  java
  • zip压缩unzip解压缩

    package com.health.synergism.base.util;
    
    import org.apache.commons.codec.binary.Base64;
    
    import java.io.*;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    import java.util.zip.ZipOutputStream;
    
    
    /**
     * @author Bai Jing on 2021-05-08
     */
    public class StreamUtil {
    
        /**
         * ZIP压缩XML数据,文件内容BASE64编码
         *
         * @param fileName
         * @return
         * @throws Exception
         */
        public static String file2Str(String fileName) throws Exception {
            byte[] bytes;
            try (ByteArrayOutputStream bos = new ByteArrayOutputStream(5 * 1024 * 1024);
                 ZipOutputStream zos = new ZipOutputStream(bos)) {
                InputStream is = StreamUtil.class.getResourceAsStream(fileName);
                if (is.available() > 0) {
                    try (BufferedInputStream fileReader = new BufferedInputStream(is)) {
                        zos.putNextEntry(new ZipEntry(fileName));
                        byte[] b = new byte[1024];
                        int i;
                        while ((i = fileReader.read(b)) != -1) {
                            zos.write(b, 0, i);
                        }
                        zos.closeEntry();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                bytes = bos.toByteArray();
            }
            return Base64.encodeBase64String(bytes);
        }
    
        /**
         * 文件内容BASE64解码,UNZIP解压缩
         *
         * @param con
         * @throws Exception
         */
        public static void str2File(String con) throws Exception {
            byte[] bytes = Base64.decodeBase64(con);
            try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
                 ZipInputStream zis = new ZipInputStream(bis)) {
                ZipEntry entry;
                while ((entry = zis.getNextEntry()) != null) {
                    String name = entry.getName();
                    try (FileOutputStream fos = new FileOutputStream("D:\xml\" + name)) {
                        byte[] buf = new byte[1024];
                        int len;
                        while ((len = zis.read(buf)) != -1) {
                            fos.write(buf, 0, len);
                        }
                        zis.closeEntry();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        public static void main(String[] args) throws Exception {
            String s = file2Str("/2015.xml");
            System.out.println(s);
            str2File(s);
        }
    
    }
  • 相关阅读:
    Mybatis3详解(一)----Mybatis的介绍
    【k8s】svc-sessionAffinityConfig
    【k8s】svc-sessionAffinity
    【k8s】svc-selector
    【k8s】svc-publishNotReadyAddresses
    【k8s】svc-ports
    【k8s】svc-externalIPs
    【k8s】svc-clusterIPs
    【k8s】svc-clusterIP
    【k8s】Service
  • 原文地址:https://www.cnblogs.com/alice-bj/p/14745101.html
Copyright © 2011-2022 走看看