文件下载输出流

public class FileDownLoadUtil {

public static Log log = LogFactory.getLog(FileDownLoadUtil .class);

public static void download(String filePath, HttpServletResponse response, String attachmentName) throws Exception {
// 判断文件是否存在 
        File file = new File(filePath); 
        log.info("下载文件路劲:" + filePath);
        if (!file.exists() || file.isDirectory()){ 
        log.info("文件不存在");
            return; 
        } 
        log.info("文件存在");
        response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(attachmentName, "UTF-8")); 
        InputStream in = null; 
        BufferedInputStream bis = null; 
        OutputStream out = null; 
        BufferedOutputStream bos = null; 
        
        try { 
            in = new FileInputStream(filePath); 
            bis = new BufferedInputStream(in); 

            byte[] data = new byte[1024]; 
            int bytes = 0; 
            out = response.getOutputStream(); 
            bos = new BufferedOutputStream(out); 
            while ((bytes = bis.read(data, 0, data.length)) != -1) { 
            bos.write(data, 0, bytes); 
            } 
            
            bos.flush(); 
            } catch (Exception e) { 
            log.error("请求失败" + e.getMessage(), e);
                throw new Exception("请求失败");
                
            } finally { 
            try { 
            if (bos != null) 
            bos.close(); 
            if (out != null) 
            out.close(); 
            if (bis != null) 
            bis.close(); 
            if (in != null) 
            in.close(); 
            } catch (IOException e) { 
            e.printStackTrace(); 
            } 
            } 
        
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值