ZipUtil

mac2022-06-30  21

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package cast.c514.transfer.util;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.nio.charset.Charset;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;/** * * @author cuizhf */public class MyZipUtil {    private MyZipUtil() {    }    /**     * 执行压缩文件的解压,并自动生成文件的操作     *     * @throws java.io.IOException     * @see http://blog.csdn.net/isea533/article/details/7995472     * @param in     * @param outputDirectory     */    public static void unZip(InputStream in, String outputDirectory) throws IOException {        // 通过Charset.forName("GBK")解决乱码问题        try (ZipInputStream zins = new ZipInputStream(in, Charset.forName("GBK"))) {            ZipEntry ze;            byte[] ch = new byte[256];            while ((ze = zins.getNextEntry()) != null) {                File zfile = new File(outputDirectory + File.separator + ze.getName());                File fpath = new File(zfile.getParentFile().getPath());                if (ze.isDirectory()) {                    if (!zfile.exists()) {                        zfile.mkdirs();                    }                    zins.closeEntry();                } else {                    if (!fpath.exists()) {                        fpath.mkdirs();                    }                    try (FileOutputStream fouts = new FileOutputStream(zfile)) {                        int i;                        while ((i = zins.read(ch)) != -1) {                            fouts.write(ch, 0, i);                        }                        zins.closeEntry();                    }                }            }        }    }}

转载于:https://www.cnblogs.com/cuizhf/p/7566679.html

相关资源:ZipUtil文件压缩工具类(解决中文乱码)
最新回复(0)