java导出下载功能实现,Java不生成临时文件的导出下载csv文件的功能实现(2)
时间: 2023-09-02 22:09:35 浏览: 151
java实现CSV文件导入与导出功能
接上文,第二种实现方式为:使用 HttpServletResponse 直接输出流的形式导出 CSV 文件。
具体步骤如下:
1. 创建 CSV 文件内容字符串。
2. 设置 HttpServletResponse 响应头信息,包括文件名、编码格式、文件类型等。
3. 获取 HttpServletResponse 的输出流,将 CSV 文件内容字符串写入输出流。
4. 关闭输出流。
参考代码如下:
```java
@RequestMapping("/export")
public void export(HttpServletResponse response) {
// 创建 CSV 文件内容字符串
StringBuilder csvContent = new StringBuilder();
csvContent.append("name,age,gender\n");
csvContent.append("张三,25,男\n");
csvContent.append("李四,30,女\n");
// 设置响应头信息
response.setCharacterEncoding("UTF-8");
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "attachment;filename=test.csv");
try {
// 获取输出流
OutputStream outputStream = response.getOutputStream();
outputStream.write(csvContent.toString().getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
```
值得注意的是,在使用 HttpServletResponse 直接输出流的形式导出 CSV 文件时,不需要创建临时文件,因此可以避免临时文件带来的磁盘空间占用和清理工作。同时,由于数据直接写入输出流,也可以避免大量数据占用内存的情况发生。
阅读全文