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

                    <div class="col-sm-1">
<button type="button" class="btn btn-warning btn-sm" id="exportText"><i class="glyphicon glyphicon-file"/>导出文本文件</button>
</div>

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 {

    /**
* 生成导出附件中文名。应对导出文件中文乱码
* <p>
* 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

java导出txt文件的更多相关文章

  1. Java导出txt模板——(一)

    导出txt文件时候\r\n才能换行 java代码 package DRDCWordTemplates; import java.io.BufferedWriter; import java.io.Fi ...

  2. Java读写txt文件

    1.Java读取txt文件 1.1.使用FileInputStream: public static String readFile(File file, String charset){ //设置默 ...

  3. Java读取txt文件

    package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...

  4. java 读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  5. java读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  6. java读取txt文件内容

    package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...

  7. C# DataGirdview手动添加数据,导出txt文件并自动对齐

    //DataGirdview手动添加数据 private void btnDataGirdView_Click(object sender,EventArgs e) {       dataGridV ...

  8. asp mvc 导出txt 文件泛型方法

    asp mvc 导出txt 文件泛型方法分享: public static void ExportFile<T>(T obj) { StringBuilder str = new Stri ...

  9. java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

    #java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...

随机推荐

  1. ElasticSearch无法启动

    安装了ElasticSearch5.5.1后,每次启动服务的时候,都是启动了一下就自动停止了.查看了一下EventViewer, 错误信息如下: Application: elasticsearch. ...

  2. NSLayoutConstraint的简单应用

    UIView *topView = [[UIView alloc] init]; topView.backgroundColor = [UIColor redColor]; [self.view ad ...

  3. Discuz常见小问题-如何人为地添加用户并分配小组

    进入后台,在用户-添加用户中可以人为添加用户并分配权限

  4. SQL语句 怎么把从一个表中查出来数据插入到另一个表中

    (1).select * into destTbl from srcTbl(2).insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl

  5. hdu 1016 Prime Ring Problem (dfs)

    一切见凝视. #include <cstdio> #include <iostream> #include <cstring> #include <algor ...

  6. infobright系列一:源码安装infobright

    1:下载infobright http://www.infobright.org/downloads/ice/infobright-4.0.7-0-src-ice.tar.gz 2:查看环境 rpm ...

  7. 来自Unix/Linux的编程启发录

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布重点内容 2017年第一篇文章,祝各位好友新年快乐. 年前因为不小心坐到了自己左手大拇指导致轻微的骨裂,没有按时更新,实在是羞愧.今年 ...

  8. merge-intervals 合并区间

    Given a collection of intervals, merge all overlapping intervals. For example,Given[1,3],[2,6],[8,10 ...

  9. [转发]如何在ASP.NET的web.config配置文件中添加MIME类型

    常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加.如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置.这里 ...

  10. eclipse mavenWeb项目真正实现热部署(修改java代码和页面文件不用重启tomcat)

            1.前言 首先,本文创作灵感源于博客园园作者signheart,特此鸣谢!原文链接见文末推荐: 百度都搜破了,全网讲的都是如何将maven项目部署到tomcat上,对于热部署的认知,真 ...