博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java导出txt文件
阅读量:6426 次
发布时间:2019-06-23

本文共 3791 字,大约阅读时间需要 12 分钟。

1:vm模板页面的代码片段

2:JavaScript脚本文件的代码片段

/**     * 导出文本文件     */    $("#exportText").on('click',function(){        window.open(contextPath+'/exportText.json', '_blank');    });

3:Java控制器的代码片段

/**     * 导出文件文件     * 用于UCC配置,将有效的数转换成JSON字符串,然后导出文本文件     *     * @return     * @throws Exception     */    @RequestMapping("/exportText.json")    public void exportText(HttpServletResponse response){        //获取有效的数据        List list = "i am godtrue 我最帅";//伪代码         //将集合转换成字符串        String jsonString = JSON.toJSONString(list);        ExportTextUtil.writeToTxt(response,jsonString,"开关控制-JSON_FOR_UCC");    }

4:导出文本文件的工具类——此例的核心代码,当然,这仅仅是一种方式,还有其他的各种的选择

import java.io.BufferedOutputStream;import java.text.MessageFormat;import java.util.Calendar;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import com.jd.fce.ape.web.common.util.FileUtil;import org.apache.commons.lang.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * 导出文件文件的工具类 */public class ExportTextUtil {        /**         * 声明日志记录器         */        private static final Logger LOGGER = LoggerFactory.getLogger(ExportTextUtil.class);        /**         * 导出文本文件         * @param response         * @param jsonString         * @param fileName         */        public static void writeToTxt(HttpServletResponse response,String jsonString,String fileName) {
//设置响应的字符集 response.setCharacterEncoding("utf-8"); //设置响应内容的类型 response.setContentType("text/plain"); //设置文件的名称和格式 response.addHeader( "Content-Disposition", "attachment; filename=" + FileUtil.genAttachmentFileName(fileName+ "_", "JSON_FOR_UCC_") + MessageFormat.format("{0,date,yyyy-MM-dd HH:mm:ss}", new Object[]{Calendar.getInstance().getTime()}) + ".txt");//通过后缀可以下载不同的文件格式 BufferedOutputStream buff = null; ServletOutputStream outStr = null; try { outStr = response.getOutputStream(); buff = new BufferedOutputStream(outStr); buff.write(delNull(jsonString).getBytes("UTF-8")); buff.flush(); buff.close(); } catch (Exception e) { LOGGER.error("导出文件文件出错,e:{}",e); } finally {
try { buff.close(); outStr.close(); } catch (Exception e) { LOGGER.error("关闭流对象出错 e:{}",e); } } } /** * 如果字符串对象为 null,则返回空字符串,否则返回去掉字符串前后空格的字符串 * @param str * @return */ public static String delNull(String str) { String returnStr=""; if (StringUtils.isNotBlank(str)) { returnStr=str.trim(); } return returnStr; }}

5:解决导出文件名乱码的工具类

public abstract class FileUtil {        /**     * 生成导出附件中文名。应对导出文件中文乱码     * 

* response.addHeader("Content-Disposition", "attachment; filename=" + cnName); * * @param cnName * @param defaultName * @return */ public static String genAttachmentFileName(String cnName, String defaultName) { try {// fileName = URLEncoder.encode(fileName, "UTF-8"); cnName = new String(cnName.getBytes("gb2312"), "ISO8859-1"); /* if (fileName.length() > 150) { fileName = new String( fileName.getBytes("gb2312"), "ISO8859-1" ); } */ } catch (Exception e) { cnName = defaultName; } return cnName; }}

 6:参看如下

http://qingfeng825.iteye.com/blog/461504

转载地址:http://asyga.baihongyu.com/

你可能感兴趣的文章
HTML5系列:HTML5表单
查看>>
python 学习笔记-循环,迭代和namespace
查看>>
北斗ncpack的简单脱壳。
查看>>
python操作postgresql数据库
查看>>
Linux运维人员必会开源运维工具体系
查看>>
linux-ubuntu常见的子目录及其作用
查看>>
css 选择器
查看>>
ECMAScript5 Object的新属性方法
查看>>
poj1111 Image Perimeters
查看>>
PythonPath在Windows 下的设置
查看>>
CentOS 7 安装Percona 5.7,Xtrabackup
查看>>
hive中join的on和where
查看>>
实验04 vim编辑器和正则表达式
查看>>
代码审查
查看>>
sharepoint adfs Adding Claims to an Existing Token Issuer in SharePoint 2010
查看>>
批处理增加和删除用户
查看>>
jquery时间控件整理
查看>>
“好”的接口是怎么样的?
查看>>
[C#学习] popupControlContainer控件
查看>>
关于网站子目录绑定二级域名的方法(php网站手机端)
查看>>