java csv下载_java 实现csv文件下载-程序员宅基地

技术标签: java csv下载  

直接上代码

@Controller

@RequestMapping(value="download")

@ResponseBody

public void download(HttpServletRequest request,HttpServletResponse response){

//获取系统换行符

String lineSeparator = System.getProperty("line.separator","\r\n");

//准备数据

String csvData = "1,2,3" + lineSeparator + "4,5,6" + lineSeparator;

String fileName = "demo.csv";

String userAgent = request.getHeader("User-Agent");

String encodedFileName;

if (userAgent.contains("MSIE") || userAgent.contains("Trident")){

//支持IE内核,避免文件名中文乱码

encodedFileName = URLEncoder.encode(fileName,"UTF-8");

}else {

//支持非IE内核,避免文件名中文乱码

encodedFileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");

}

response.setCharacterEncoding("UTF-8");

response.setContentType("text/csv");

response.setHeader("Content-Disposition","attachment;filename=" + encodedFileName);

//避免csv文件内容中文乱码

OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream(),"GBK");

osw.write(csvData);

osw.flush();

osw.close();

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36390615/article/details/114055963

智能推荐

计算机应用基础 辅助教学系统,计算机应用基础课程辅助教学及智能测评系统使用手册——网络版.docx...-程序员宅基地

文章浏览阅读103次。计算机应用基础课程辅助教学及智能测评系统使用手册(网络版)一、服务器端安装硬件要求如下:系统需求客户机CPU建议 Pentium m 800 MHz 以上内存512 MB以上系统要求Windows XP SP3+IBS(IE7) +Office2007具体安装步骤如下:文件,出现如下画面,选择安装目录,如果选择默认目录,直接单击“下一步”按钮即可;如需改变安装目录,单击“浏览”按钮,选择安装目录,..._计算机应用课智能化辅助系统

Connection to tcp://39.96.3.215:1935 failed: Error number -138 occurred-程序员宅基地

文章浏览阅读5.9w次,点赞5次,收藏6次。1、搭建好nginx服务器,添加如下代码后浏览器输入地址可用正常访问,但是连接推流地址时报如下的错误:[tcp @ 000002ae90169540] Connection to tcp://39.96.3.215:1935 failed: Error number -138 occurred[rtmp @ 000002ae90169440] Cannot open connec..._error number -138 occurred

分区 格式化 linux gpt分区,linux下大于2TB硬盘格式化及挂载linux下大于2T的分区方法linux GPT分区表 管理 自动挂载分区...-程序员宅基地

文章浏览阅读130次。《linux下大于2TB硬盘格式化及挂载linux下大于2T的分区方法linux GPT分区表 管理 自动挂载分区》由会员分享,可在线阅读,更多相关《linux下大于2TB硬盘格式化及挂载linux下大于2T的分区方法linux GPT分区表 管理 自动挂载分区(7页珍藏版)》请在人人文库网上搜索。1、linux fdisk 分区、格式化、挂载!linux下大于2TB硬盘格式化及挂载,linux下..._fdisk -l gpt分区

计算机辅助电路设计步骤,计算机辅助电路设计实验.doc-程序员宅基地

文章浏览阅读512次。计算机辅助电路设计实验计算机辅助电路设计实验实验一 集成门电路功能的测试一、实验目的1.熟悉集成门电路的工作原理和主要参数。2.熟悉集成门电路的外型引脚排列及应用事项。3.验证和掌握门电路的逻辑功能。二、实验仪器1.数字电路实验仪 一台2.示波器 一台3.信号发生器 一台4.万用表 ..._辅助电路怎么加

[NFC]LLCP协议介绍-程序员宅基地

文章浏览阅读3.4k次。依照学习流程,此章节主要介绍NFCForum中LLCP Spec。主要是将LLCP spec中重要的内容摘要出来,包含的内容肯定不是很全面,但基本上看代码是够用了。主要分为三部分: 1.LLC概述 2.LLC协议 3.LLCP链路 1 LLC概述 LLC:(logicallink c_llcp

DAO的简单理解_java中的dao和daolmpl-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏12次。DAO的简单理解DAO 设计模式客户层:客户使用浏览器进行访问显示层:使用servlet和jsp进行页面的显示业务层(business object):将多个原子性的DAO操作进行组合数据层(DAO):提供DAO的原子性操作DAO组成数据库连接:vo(value object):定义涉及的变量的getter和setter,后期提取相关的值时操作vo对象。一个vo对象类似于一条..._java中的dao和daolmpl

随便推点

使用screw plus来保护php代码安全-程序员宅基地

文章浏览阅读857次。https://github.com/del-xiong/screw-plushttp://git.oschina.net/splot/php-screw-plusscrew plus是一个开源的php扩展,作用是对php文件进行加密,网络上提供php加密的服务很多,但大多都只是混淆级别的加密,被人拿到加密文件问只要有足够耐心就能破解,与之不同的是,screw plus采用扩展来加解密,而且...

怎么把一个已经压缩好的大容量的压缩包,分卷后发给别人_软件包怎么分片压缩-程序员宅基地

文章浏览阅读568次,点赞10次,收藏5次。Win10 专业版7Z360压缩。_软件包怎么分片压缩

Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解_项目单元测试图怎么画-程序员宅基地

文章浏览阅读1.8w次,点赞2次,收藏14次。Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率本文将展示如何使用IntelliJ IDEA开发单元测试和分析覆盖率。1 创建新的项目创建名为UnitTestingApp的Java项目。2 创建一个类进行测试创建一个新的类用于测试。添加方法sayHello返回Hello字符串。3 创建测试源根目_项目单元测试图怎么画

MISC_image_misc msg image-程序员宅基地

文章浏览阅读1.9k次。MISCimage启示:切忌形成惯性思路尽管总结有益,亦是为了形成常见的解题思路。尽管浅薄的笔者通过上述几种方法,的确能独立解出一定比例的图像MISC题,但出题者永远比你懂得多、想得多。要学会跳出固定范式,灵活运用!1winhex改变图片规格大白看不到图? 是不是屏幕太小了 注意:得到的 flag 请包上 flag{} 提交此为原始图像????观察到大白为半身图,丢进winhex查看,实为png图像没错;结合提示(如果在kali中无法正常浏览图片也可以做接下来的操作),更_misc msg image

Spring Cloud 入门教程(三): 服务消费者(Feign)(Greenwich.RELEASE)-程序员宅基地

文章浏览阅读599次。2019独角兽企业重金招聘Python工程师标准>>> ..._springcloud 集成 fegin greenwich.release

linux查看蓝牙pin码,查看pin-程序员宅基地

文章浏览阅读695次。x$kglpn基表﹕X$KGLPN--[K]ernel [G]eneric [L]ibrary Cache Manager object [P]i[N]s它是與x$kgllk相對應的表﹐是關于pin的相關資訊引用該表的相關視圖﹕DBA_KGLLOCK表相關欄位的描述﹕SQL> desc x$kglpn;名稱 類型------------ -------------------..._linux查询蓝牙pin码