工作日记2017.11.14 response导出文件

本文介绍如何使用ServletOutputStream输出Excel文件及设置正确的响应头,并演示如何通过PrintWriter输出文本内容到客户端浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用响应容器输出文件或文字

获取响应的字节流(An output stream accepts output bytes
* and sends them to some sink),将文件写入字节流中输出。

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=".concat("file_name" +  ".xlsx"));
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
if (workbook != null) {
    workbook.close();
}else if (outputStream != null){
    outputStream.close();
}


利用响应的getWriter方法,获取文本输出字符流(character streams),输出文本内容

response.setHeader("Content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
if(writer != null){
   writer.close();
}

字节流(ServletOutputStream)默认使用iso8859-1编码来进行存储字节数据。而且,使用字节流(ServletOutputStream)的write方法输出字符,改变编码为UTF-8后,还是会报iso8859-1编码异常。
编码集:http://www.iana.org/assignments/character-sets/character-sets.xhtml

String数组转List,List转String数组

List list = Arrays.asList(arr);   //String数组转List

String[] strArray = list.toArray(new String[list.size()]);  //ListString数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值