输出字节流中的压缩文件

本文介绍了一种使用字节流直接操作文件的方法来下载ZIP格式的文件,通过ServletActionContext获取HTTP响应,设置内容类型为application/octet-stream,并通过BufferedInputStream和BufferedOutputStream进行读写操作,确保了数据的正确传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输出zip文件用字节流  :

(字节流直接操作文件,字符流有缓存)

 private void download(InputStream inputData,String fileName,String fileExtension) throws IOException{
           HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", "attachment; filename="
                 + fileName +"."+fileExtension);
        BufferedInputStream bins=new BufferedInputStream(inputData);//放到缓冲流里面
        OutputStream outs = response.getOutputStream();//获取文件输出IO流
        BufferedOutputStream bouts=new BufferedOutputStream(outs);
       try {
           int bytesRead = 0;
           byte[] buffer = new byte[8192];
           while ((bytesRead = bins.read(buffer, 0, 8192)) != -1) {
               bouts.write(buffer, 0, bytesRead);
               bouts.flush();//这里一定要调用flush()方法
           }
       } catch (Exception e) {
           logger.info(e.getMessage(), e);
       }finally {
           IOUtils.closeQuietly(bouts);
           IOUtils.closeQuietly(outs);
           IOUtils.closeQuietly(bins);
           IOUtils.closeQuietly(inputData);
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值