Java创建压缩文件

package com.pdf;

import java.io.Closeable;
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;


/**
* java压缩文件,导入ant.jar包
*/
public class CrateZip
{

    public static void  main(String args[]) {
        String needtozipfilepath = "d:/temp/";
        String zipFileName = "d:/用户分布.zip";
        new CrateZip().createDownLoadZipFileByAntZip(needtozipfilepath, zipFileName);
    }
   
    /**
     * 打包文件
     */
    public static void createDownLoadZipFileByAntZip(String needtozipfilepath,
            String zipFileName)
    {
       
        ZipOutputStream out = null;
        FileInputStream in = null;
        FileOutputStream zipOut = null;
        ZipEntry zipEntry = null;
        try
        {
           
            //获取文件路径
            File srcPath = new File(needtozipfilepath);
           
            //获取文件个数
            int len1 = srcPath.listFiles().length;
           
            //创建文件 路径数组
            String[] filenames = new String[len1];
           
            byte[] buf = new byte[1024];
           
            //获取文件
            File[] files = srcPath.listFiles();
            zipOut = new FileOutputStream(zipFileName);
            out = new ZipOutputStream(zipOut);
            //循环添加 文件到包中
            for (int i = 0; i < filenames.length; i++)
            {
                in = new FileInputStream(files[i]);
                zipEntry = new ZipEntry(files[i].getName());
                out.setEncoding("GBK");
                out.putNextEntry(zipEntry);
                int len;
                while ((len = in.read(buf)) > 0)
                {
                    out.write(buf, 0, len);
                }
               
                out.closeEntry();
               
                in.close();
            }
           
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            closeObj(out);
            closeObj(in);
            closeObj(zipOut);
        }
       
    }
   
    /**
     * 关闭IO流
     */
    private static void closeObj(Closeable closeable)
    {
        if (null != closeable)
        {
            try
            {
                closeable.close();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }
   
}

你可能感兴趣的:(java)