javaweb reponse 写出文件


  1. Map map = getSearchValue();
  2. File excelFile = orderService.getexportexcel(id,map);
  3. InputStream is = null;
  4. OutputStream os = null;
  5. BufferedInputStream bis = null;
  6. BufferedOutputStream bos = null;
  7. //以流的形式输出文件
  8. try {
  9. if (excelFile.exists()) {
  10. String fileName = "订单.xls";
  11. is = new FileInputStream(excelFile);
  12. HttpServletResponse response = ServletActionContext
  13. .getResponse();
  14. os = response.getOutputStream();
  15. bis = new BufferedInputStream(is);
  16. bos = new BufferedOutputStream(os);
  17. fileName = java.net.URLEncoder.encode(fileName, "UTF-8");// 处理中文文件名的问题
  18. // fileName = new String(fileName.getBytes("UTF-8"), "GBK");// 处理中文文件名的问题
  19. response.reset();
  20. response.setCharacterEncoding("UTF-8");
  21. response.setContentType("application/ vnd.ms-excel");// 不同类型的文件对应不同的MIME类型
  22. response.setHeader("Content-Disposition",
  23. "attachment; filename=" + fileName);
  24. int bytesRead = 0;
  25. byte[] buffer = new byte[1024];
  26. while ((bytesRead = bis.read(buffer)) != -1) {
  27. bos.write(buffer, 0, bytesRead);// 将文件发送到客户端
  28. }
  29. bos.flush();
  30. }
  31. } catch (Exception e) {
  32. logger.error(e.getMessage(), e);
  33. } finally{
  34. IOUtils.closeQuietly(bis);
  35. IOUtils.closeQuietly(bos);
  36. IOUtils.closeQuietly(is);
  37. IOUtils.closeQuietly(os);
  38. }

原文地址:https://www.cnblogs.com/signheart/p/6597943.html