package com.aastocks.util.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.Deflater; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; /* * @author steven.wu * @since 2009.8.11 * @description read and write zip file。 */ public class ZipFilesCompressed { public ZipFilesCompressed() { // TODO Auto-generated constructor stub } public static void putZipEntry(String zipOutName, File srcFile) throws Exception { if(srcFile.exists()){ ZipOutputStream zipOut=new ZipOutputStream(new FileOutputStream(new File(zipOutName))); FileInputStream in = new FileInputStream(srcFile); ZipEntry zipEntry = new ZipEntry(srcFile.getName()); zipOut.setLevel(Deflater.BEST_COMPRESSION); zipOut.putNextEntry(zipEntry); int len; byte[] buffer = new byte[18024]; while ((len = in.read(buffer)) > 0) { zipOut.write(buffer, 0, len); } zipOut.closeEntry(); zipOut.close(); in.close(); } } public static void UnZipEntry(File zipFileName,String outFilePath) throws Exception { ZipInputStream zipIn=new ZipInputStream(new FileInputStream(zipFileName)); ZipEntry zipEntry = zipIn.getNextEntry(); if(zipIn.available()>0){ if(!new File(outFilePath).exists()){ new File(outFilePath).mkdir(); } FileOutputStream fos = new FileOutputStream(new File(outFilePath+zipFileName.separator+zipEntry.getName())); int len; byte[] buffer = new byte[18024]; while ((len = zipIn.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.close(); zipIn.closeEntry(); zipIn.close(); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String s="d:/aa.pdf"; String unZipFile="e:/bin/"; String outName="bin.zip"; try{ putZipEntry(outName,new File(s)); UnZipEntry(new File("d:/"+outName),unZipFile); }catch(Exception e){ e.printStackTrace(); } } }