輸出流下載文件主要是使用respose直接把文件的IO流傳給客戶端,不需要服務(wù)器端生成文件。
// 客戶端輸出流的設(shè)置。
String fileName = "csv";
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".csv\"");
response.setCharacterEncoding("utf-8");
response.setContentType("application/octet-stream-dummy; charset=utf-8");
// 輸出流。
ServletOutputStream os = response.getOutputStream();
// 可以解決亂碼問題。
OutputStreamWriter osw = new OutputStreamWriter(os);
...
StringBuffer sb = new StringBuffer();
sb.append(data);
osw.write(sb.toString());
osw.flush();
osw.close();
os.flush();
os.close();