/*
* 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();
}
}
}
}
}
}
傲轩游戏网