本文主要是介绍使用apache IOUtil 对接流,实现文件下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前一阵子做文件下载,按照以往的做法需要写循环操作输出流非常麻烦,基本都是拷贝,读写都不方便。
灵机一动我改用了IOUtils.copy 方法成功实现了操作,写起来比较简洁,看代码:
IOUtils.copy方便之处在于会自己处理缓存
//文件名
String myfileName=new String(filename.getBytes());
//需要下载的文件
String filepath=request.getSession().getServletContext().getRealPath(http://write.blog.csdn.net/postedit"/test.jpg");
File myfile = new File(filepath);
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + myfileName );
response.addHeader("Content-Length", "" + myfile.length());
response.setContentType("application/octet-stream");
//打开文件输入流 和 servlet输出流
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
InputStream fis = new BufferedInputStream(new FileInputStream(file));
//通过ioutil 对接输入输出流,实现文件下载
IOUtils.copy(fis, toClient);
toClient.flush();
//关闭流
fis.close();
toClient.close();
这篇关于使用apache IOUtil 对接流,实现文件下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!