http://topic.csdn.net/u/20100208/17/d0b7472e-a5d4-42aa-a82c-30b45759488f.html
/**
* 压缩文件
*
* @param srcfile
* File[] 需要压缩的文件列表
* @param zipfile
* File 压缩后的文件
*/
public static void ZipFiles(java.io.File[] srcfile, java.io.File zipfile) {
byte[] buf = new byte[1024];
try {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipfile));
for (int i = 0; i < srcfile.length; i++) {
FileInputStream in = new FileInputStream(srcfile[i]);
out.putNextEntry(new ZipEntry(srcfile[i].getName()));
String str = srcfile[i].getName();
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
}
out.close();
System.out.println("压缩完成.");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 解压缩
*
* @param zipfile
* File 需要解压缩的文件
* @param descDir
* String 解压后的目标目录
*/
public static void UnZipFiles(java.io.File zipfile, String descDir) {
try {
ZipFile zf = new ZipFile(zipfile);
for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {
ZipEntry entry = ((ZipEntry) entries.nextElement());
String zipEntryName = entry.getName();
InputStream in = zf.getInputStream(entry);
OutputStream out = new FileOutputStream(descDir + zipEntryName);
byte[] buf1 = new byte[1024];
int len;
while ((len = in.read(buf1)) > 0) {
out.write(buf1, 0, len);
}
in.close();
out.close();
System.out.println("解压缩完成.");
}
} catch (IOException e) {
e.printStackTrace();
}
}