ZipInputStream import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class Zip { /** * @param args */ public static int iCompressLevel; // 压缩比 取值范围为0~9 public static boolean bOverWrite; // 是否覆盖同名文件 取值范围为True和False private static ArrayList allFiles = new ArrayList(); public static String sErrorMessage; public static ArrayList Ectract(String sZipPathFile, String sDestPath) { ArrayList allFileName = new ArrayList(); try { // 先指定压缩档的位置和档名,建立FileInputStream对象 FileInputStream fins = new FileInputStream(sZipPathFile); // 将fins传入ZipInputStream中 ZipInputStream zins = new ZipInputStream(fins); ZipEntry ze = null; byte ch[] = new byte[256]; while ((ze = zins.getNextEntry()) != null) { File zfile = new File(sDestPath + 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(); FileOutputStream fouts = new FileOutputStream(zfile); int i; allFileName.add(zfile.getAbsolutePath()); while ((i = zins.read(ch)) != -1) fouts.write(ch, 0, i); zins.closeEntry(); fouts.close(); } } fins.close(); zins.close(); sErrorMessage = "OK"; } catch (Exception e) { System.err.println("Extract error:" + e.getMessage()); sErrorMessage = e.getMessage(); } allFiles.clear(); return allFileName; } public static void main(String[] args) { // TODO Auto-generated method stub Zip z = new Zip(); ArrayList a = new ArrayList(); a = z.Ectract("d://temple.zip", "d://zip//"); System.out.println(a.size()); } } GZIPInputStream import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; public class GZIPDemo { public static void unZipDemo(String from,String to){ try { int nnumber; FileInputStream fin = new FileInputStream( from); GZIPInputStream MmGz = new GZIPInputStream(fin); File zfile = new File(to); FileOutputStream fout = new FileOutputStream(zfile); byte[] buf = new byte[1024]; nnumber = MmGz.read(buf, 0, buf.length); while (nnumber != -1) { fout.write(buf, 0, nnumber); nnumber = MmGz.read(buf, 0, buf.length); } MmGz.close(); fout.close(); fin.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws IOException { //c://az_AZ0001_P_2010-4-9.zip unZipDemo("c://az_AZ0001_P_2010-4-9.zip","c://zip//az_AZ0001_P_2010-4-9.xlsx"); } }