解压zip文件错误79 - 不适当的文件类型或格式
window查看解压问题最后一个文件大小为0kb
原因是没有正确的关闭流
正确的
File zip = File.createTempFile("BathExportZip", ".zip");
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zip));
for (int i = 0; i < workbookList.size(); i++) {
XSSFWorkbook workbook = workbookList.get(i);
// 使用 ByteArrayOutputStream 将工作簿写入字节数组
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
workbook.write(baos); // 将工作簿写入 ByteArrayOutputStream
byte[] bytes = baos.toByteArray();
Long statementId = statementListId.get(i);
// 自定义文件名
String fileName = "-" + Instant.now().toEpochMilli()+".xlsx";
ZipEntry entry = new ZipEntry(fileName);
zos.putNextEntry(entry); // 将 ZipEntry 添加到压缩文件
// 将工作簿的字节数据写入 ZIP 文件
zos.write(bytes);
zos.closeEntry();
baos.close();
try {
Thread.sleep(50L);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
zos.close();
//保存的oss并且删除本地
zip.delete();