输出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);
}
}