想用java自带的解压包来解压文件,可惜不支持中文,在网上找了一个解决方案:
http://zwllxs.iteye.com/blog/871260
学习了,然后总结了一下,代码在附件
/**
* 解压文件
* @param srcFile 源压缩文件
* @param desDir 解压的目标路径
* @throws Exception
*/
public void unZip(String srcFile, String desDir) throws Exception {
ZipInputStream zis = new ZipInputStream(new FileInputStream(srcFile));
ZipEntry ze;
byte buffer[] = new byte[1024];
while ((ze = zis.getNextEntry()) != null) {
String zName = ze.getName();
System.out.println("\n unziping " + zName);
// 不要压缩文件中的根目录
zName = zName.substring(zName.indexOf("/") + 1);
if (ze.isDirectory()) {
File dirFile = new File(desDir + zName);
dirFile.mkdir();
System.out.println("mkdir : " + dirFile);
} else {
File file = new File(desDir + zName);
if (!file.getParentFile().exists()) {
System.out.println("父目录不存在,创建");
file.getParentFile().mkdirs();
}
// file.createNewFile();
System.out.println("file : " + file);
FileOutputStream out = new FileOutputStream(file);
int length;
while ((length = zis.read(buffer)) != -1){
out.write(buffer, 0, length);
}
out.close();
}
zis.closeEntry();
}
zis.close();
}