java将文件打包zip

ZipUtil.java

package com.soc.cloud.groupAssetDataManage.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import com.soc.cloud.excel.util.DateUtil;

public class ZipUtil {

	/**
	 * 
	 * @param imgUrl  需要打包的路径集合
	 * @param zipFilePathExport 打包后zip所在的文件夹
	 * @param zipFileName 打包后zip文件名
	 * @return
	 */
	public static String toZip2(List<String> imgUrl,String zipFilePathExport,String zipFileName) {
		
    ZipOutputStream zos = null ; 
    BufferedOutputStream out;
    try {
		out = new BufferedOutputStream(new FileOutputStream(new File(zipFilePathExport +"/"+ zipFileName)));
		zos = new ZipOutputStream(out);
		
		// 将所有文件打包进zip包
		for (String isfileUrl : imgUrl) {
			File isfile = new File(isfileUrl);
			String fileName = isfileUrl.substring(isfileUrl.lastIndexOf("/")+1);
			
			if(isfile.exists()) {
		    	InputStream in = new BufferedInputStream(new FileInputStream(isfile));
		    	zos.putNextEntry(new ZipEntry(fileName));
		    	byte[] b2 = new byte[1024];
		    	int bytesRead2;
		    	while ((bytesRead2 = in.read(b2)) > 0) {
		    		zos.write(b2, 0, bytesRead2);
		    	}
		    	in.close();
		    	zos.closeEntry();
		    }
		}
    }  catch (Exception e) {
		e.printStackTrace();
	} finally {
		try {
			zos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}			
    // 返回zip的路径(传回页面进行导出)
	return zipFilePathExport + "/" + zipFileName;
	
}
}

  

posted @ 2022-02-15 16:38  梦幻&浮云%  阅读(497)  评论(0)    收藏  举报