/**保存文件,并且声称压缩包,返回压缩包地址
*
* @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;
}