梦幻之旅

DEBUG - 天道酬勤

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks
package com.framework.commons.util;

import java.io.*;
import java.util.*;
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

/**
 * <ul>
 * <li>Title:[ZipUtil]</li>
 * <li>Description: [zip加压名解压多个文件]</li>
 * <li>Copyright 2009 Upengs Co., Ltd.</li>
 * <li>All right reserved.</li>
 * <li>Created by [Huyvanpull] [2011-1-9]</li>
 * <li>Midified by [modifier] [modified time]</li>
 * </ul>
 * 
 * 
@version 1.0
 
*/

public class ZipUtil
{
    
public ZipUtil()
    
{}
    
    
public static void main(String[] args)
    
{
        
try
        
{
            File f1 
= new File("G:/t1.txt");
            File f2 
= new File("G:/t2.txt");
            
            File[] fs 
= new File[]{f1, f2};
            
            File f 
= new File("G:/t.zip");
            ZipUtil.ZipFiles(fs, f);
        }

        
catch(Exception ex)
        
{
            ex.printStackTrace();
        }

    }

    
    
/**
     * <ul>
     * <li>Description:[压缩文件]</li>
     * <li>Created by [Huyvanpull] [2011-1-9]</li>
     * <li>Midified by [modifier] [modified time]</li>
     * </ul>
     * 
     * 
@param srcfile
     * 需要压缩的文件列表
     * 
@param zipfile
     * 压缩后的文件
     
*/

    
public static void ZipFiles(java.io.File[] srcfile, java.io.File zipfile)
    
{
        
byte[] buf = new byte[1024];
        
try
        
{
            
// Create the ZIP file
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
                    zipfile));
            
// Compress the files
            for (int i = 0; i < srcfile.length; i++)
            
{
                FileInputStream in 
= new FileInputStream(srcfile[i]);
                
// Add ZIP entry to output stream.
                out.putNextEntry(new ZipEntry(srcfile[i].getName()));
                
// Transfer bytes from the file to the ZIP file
                int len;
                
while ((len = in.read(buf)) > 0)
                
{
                    out.write(buf, 
0, len);
                }

                
// Complete the entry
                out.closeEntry();
                in.close();
            }

            
// Complete the ZIP file
            out.close();
            System.out.println(
"压缩完成.");
        }

        
catch (IOException e)
        
{
            e.printStackTrace();
        }

    }

    
    
/**
     * <ul>
     * <li>Description:[解压缩]</li>
     * <li>Created by [Huyvanpull] [2011-1-9]</li>
     * <li>Midified by [modifier] [modified time]</li>
     * </ul>
     * 
     * 
@param zipfile
     * 需要解压缩的文件
     * 
@param descDir
     * 解压后的目标目录
     
*/

    @SuppressWarnings(
"unchecked")
    
public static void UnZipFiles(java.io.File zipfile, String descDir)
    
{
        
try
        
{
            
// Open the ZIP file
            ZipFile zf = new ZipFile(zipfile);
            
for (Enumeration entries = zf.entries(); entries.hasMoreElements();)
            
{
                
// Get the entry name
                ZipEntry entry = ((ZipEntry) entries.nextElement());
                String zipEntryName 
= entry.getName();
                InputStream in 
= zf.getInputStream(entry);
                
// System.out.println(zipEntryName);
                OutputStream out = new FileOutputStream(descDir + zipEntryName);
                
byte[] buf1 = new byte[1024];
                
int len;
                
while ((len = in.read(buf1)) > 0)
                
{
                    out.write(buf1, 
0, len);
                }

                
// Close the file and stream
                in.close();
                out.close();
                System.out.println(
"解压缩完成.");
            }

        }

        
catch (IOException e)
        
{
            e.printStackTrace();
        }

    }

}

posted on 2011-01-09 23:17 HUIKK 阅读(174) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: