java解压zip文件错误79 - 不适当的文件类型或格式

解压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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值