package java.util.zip;
文件导出到【临时目录】,压缩包放【临时目录】外边
打完包根据需要 删除【临时目录】
(得先删【临时目录】中的文件,才能删掉【临时目录】)
文件流 不关 删不掉文件
文件夹 :
目标.zip
临时目录
文件1.pdf
文件2.pdf
try(
// 压缩包 压缩包位置:zipFilePath
FileOutputStream fileOutputStream =
new FileOutputStream(zipFilePath);
CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream, new CRC32());
ZipOutputStream zipOut = new ZipOutputStream(cos);
){
// 取文件 临时目录:pdfFilePath
String pdfFilePath = filePath + "/" + userId + "/" + tempFilePath;
File fileDir = new File(pdfFilePath);
File[] files = fileDir.listFiles();
for (File file : files) {
if(file.isDirectory()){
file.delete();
continue;
}
try(
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
){
ZipEntry entry = new ZipEntry(file.getName());
zipOut.putNextEntry(entry);
int count;
byte[] data = new byte[8192];
while ((count = bis.read(data, 0, 8192)) != -1) {
zipOut.write(data, 0, count);
}
}
file.delete();
}
zipOut.flush();
zipOut.close();
fileDir.delete();
}