java压缩文件夹

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;

 

 

  

public static void main(String[] args) throws Exception {
         doCompress(new File("D:\\210000000"), new File("D:\\210000000.zip"));
     }    /**
      * 文件压缩
      * @param srcFile  目录或者单个文件
      * @param destFile 压缩后的ZIP文件
      */
     public static void doCompress(File srcFile, File destFile) throws Exception {
         ZipOutputStream out = new ZipOutputStream(new FileOutputStream(destFile));
         if(srcFile.isDirectory()){
             File[] files = srcFile.listFiles();
             for(File file : files){
                 doCompress(file, out);
             }
         }else {
             doCompress(srcFile, out);
         }
     }    public static void doCompress(String pathname, ZipOutputStream out) throws IOException{
         doCompress(new File(pathname), out);
     }    public static void doCompress(File file, ZipOutputStream out) throws IOException{
         if( file.exists() ){
             byte[] buffer = new byte[1024];
             FileInputStream fis = new FileInputStream(file);
             out.putNextEntry(new ZipEntry(file.getName()));
             int len = 0 ;
             // 读取文件的内容,打包到zip文件    
             while ((len = fis.read(buffer)) > 0) {
                 out.write(buffer, 0, len);
             }
             out.setEncoding("UTF8");
             out.flush();
             out.closeEntry();
             fis.close();
         }
     }