将文件列表打包为zip
/**
* 将拉取的文件打包为zip
* @param filePathList 文件路径列表
* @param savePath 保存路径
* @param zipName zip名称
* @return zip路径
*/
public String generateZip(ArrayList<String>filePathList,String savePath,String zipName) throws IOException{
String zipPath=savePath+"/"+zipName;
File zip =new File(zipPath);
FileOutputStream outputStream=new FileOutputStream(zip);
ZipOutputStream out =new ZipOutputStream(outputStream);
filePathList.forEach(row->{
//要压缩的单个文件路径
String oneFilePath = row;
File inputFile = new File(oneFilePath);
//生成zip包中的zip实体
ZipEntry zipEntry=new ZipEntry(inputFile.getName());
try {
byte[] buffer = new byte[1024];
FileInputStream fileInputStream=new FileInputStream(oneFilePath);
out.putNextEntry(zipEntry);
int len;
//读入需要下载的文件的内容,打包到zip文件
while ((len = fileInputStream.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
fileInputStream.close();
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
});
out.closeEntry();
out.close();
return zipPath;
}