JAVA中将两个byte[]文件数据添加到压缩包中进行下载

发布时间 2023-06-19 15:47:53作者: yvioo

 

 

  String zipFileName="压缩包名.zip";

        // 设置响应头,告诉浏览器返回的是否是一个文件流
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", "attachment;filename=" + zipFileName);

        // 创建一个字节数组输出流
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        // 创建一个压缩输出流
        ZipOutputStream zos = new ZipOutputStream(bos);
        try {
            // 将byte数组文件逐个添加到压缩包中
        
            zos.putNextEntry(new ZipEntry("文件名"));
            zos.write(文件的byte[]);
            zos.closeEntry();


            zos.putNextEntry(new ZipEntry("文件名"));
            zos.write(文件的byte[]);
            zos.closeEntry();

            // 完成压缩并将压缩包写入到输出流中
            zos.finish();

            // 将输出流中的内容写入响应流中
            response.getOutputStream().write(bos.toByteArray());
        } catch (IOException e) {
           log.info(">>>>>文件下载异常:{}",e);
        }