ZIP压缩,解压缩简单实现

package com.fangtoon.business.activity.junit; 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

/** 
  * @date    创建时间:2014年12月31日 上午9:08:59  
 */

public class ZipUtils {
	
	
	//D:\logs\zipLog
	public  static void zipFiles(File destfile,File zipFiles) throws Exception{
		if(!destfile.isFile()){
			destfile.createNewFile();
		}
		try{
			File[] listFiles = zipFiles.listFiles();
			ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(destfile));
			for(File file : listFiles){
				ZipEntry zipEntry = new ZipEntry(file.getName());
				zos.putNextEntry(zipEntry);
				FileInputStream fis = new FileInputStream(file);
				System.out.println("===" + fis.available());
				byte[] bytes = new byte[4096];
				int read = 0;
				while((read = fis.read(bytes))!=-1){
					zos.write(bytes, 0, read);
				}
				zos.closeEntry();
				fis.close();
			}
			zos.finish();
			zos.close();
		}catch(Exception e){
			e.printStackTrace();
		} 
	}

	
	
	public  static void unZipFiles(File destfile,File File) throws Exception{
		if(!destfile.isDirectory()){
			 throw new IllegalAccessException("此文件格式不是一个目录文件");
		}
		try{
			String directoryName = destfile.getAbsolutePath()+"/";
			ZipFile zf = new ZipFile(File);  
			Enumeration zipEntrys =  zf.entries(); 
			while(zipEntrys.hasMoreElements()){
				ZipEntry zipEntry = (ZipEntry) zipEntrys.nextElement();
				InputStream is = zf.getInputStream(zipEntry);
				FileOutputStream fos = new FileOutputStream(directoryName+zipEntry.getName());
				byte[] bytes = new byte[1024];
				int read = 0;
				while((read = is.read(bytes))!=-1){
					fos.write(bytes, 0, read);
				}
				fos.close();
				is.close();
			}
			zf.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public static void main(String args[]) throws Exception{
		File file = new File("D:\\logs\\zipLog");
		File destFile = new File("D:\\logs\\testZip\\test.rar");
		zipFiles(destFile,file);
		//unZipFiles(file, destFile);
		System.out.println("fdsafdsf");
	}

}

 

你可能感兴趣的:(zip)