java 生成多个文件打包_生成多个文件,并打包成压缩包,在网页上下载。

/**保存文件,并且声称压缩包,返回压缩包地址

*

* @date Nov 20, 20142:06:25 PM

*@paramresultList

*@return压缩包地址

*@throwsIOException*/

private String saveFile(HttpServletRequest request, Long shopid, List resultList) throwsIOException{

logger.info("生成文件 start....");

String zippath= DateUtil.getCurrentDateStr(DateUtil.DATE_FMT)+resultList.size()+"openid压缩包.zip"; //上传文件路径

int pageSize = 3;//每个文件存储大小500

String txtFullPath = "文件名称";

StringBuffer openidBuffer= new StringBuffer(100); //openid内容

List allFilesList = new ArrayList();//文件集合//保存导出文件。最多20个txt

logger.info("生成文件 txt文件 start...");for (int i=0;i

Ttakepart ttakepart=(Ttakepart)resultList.get(i);if (i%pageSize==0 && i>0){

txtFullPath= FileUtil.getFilePath(request, Constant.CARDDOWN_PATH, shopid, i+".txt");

logger.info("生成文件 txt文件 txtFullPath="+txtFullPath);//创建保存文件

FileUtil.saveOneFile(txtFullPath, openidBuffer.toString());

allFilesList.add(newFile(txtFullPath));//重置内容

openidBuffer = new StringBuffer(100);

}

openidBuffer.append(ttakepart.getWxno()).append("\n"); //openid内容

}if (openidBuffer.length() > 0){//还存在文件剩余内容,保存文件

txtFullPath = FileUtil.getFilePath(request, Constant.CARDDOWN_PATH, shopid, "last.txt");

logger.info("生成文件 txt文件 txtFullPath="+txtFullPath);//创建保存文件

FileUtil.saveOneFile(txtFullPath, openidBuffer.toString());

allFilesList.add(newFile(txtFullPath));//重置内容

openidBuffer = new StringBuffer(100);

}

logger.info("生成文件 txt文件 end...");

logger.info("压缩txt文件 start...");//删除原有文件

File zipFile = newFile(zippath);if(zipFile.exists()){

zipFile.delete();

}

zippath=FileUtil.getFilePath(request, Constant.CARDDOWN_PATH, shopid, zippath);//压缩文件打包

byte[] buffer = new byte[1024];

ZipOutputStream out= new ZipOutputStream(newFileOutputStream(zippath));//通过相应的业务来封装自己的list。

FileInputStream fis = null;for(File eachFile : allFilesList) {

fis= newFileInputStream(eachFile);

out.putNextEntry(newZipEntry(eachFile.getName()));intlen;while ((len = fis.read(buffer)) > 0) {

out.write(buffer,0, len);

}

out.closeEntry();

fis.close();

logger.info("删除文件 txt文件 txtFullPath="+eachFile.getCanonicalPath());

eachFile.delete();

}

out.close();

logger.info("压缩txt文件 end.");

logger.info("生成文件 end....zippath="+zippath);returnzippath;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值