java导出txt文件
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文件的更多相关文章
- Java导出txt模板——(一)
导出txt文件时候\r\n才能换行 java代码 package DRDCWordTemplates; import java.io.BufferedWriter; import java.io.Fi ...
- Java读写txt文件
1.Java读取txt文件 1.1.使用FileInputStream: public static String readFile(File file, String charset){ //设置默 ...
- Java读取txt文件
package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...
- java 读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- java读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- java读取txt文件内容
package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...
- C# DataGirdview手动添加数据,导出txt文件并自动对齐
//DataGirdview手动添加数据 private void btnDataGirdView_Click(object sender,EventArgs e) { dataGridV ...
- asp mvc 导出txt 文件泛型方法
asp mvc 导出txt 文件泛型方法分享: public static void ExportFile<T>(T obj) { StringBuilder str = new Stri ...
- java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去
#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...
随机推荐
- Hibernate setDate自动截去时分秒
遇到一个这样的问题在hibernate应用时,Qurey对象qurey Query query = ses.createQuery(HQL); query.setDate("endTime& ...
- robot framework + python实现http接口自动化测试框架
https://www.jianshu.com/p/6d1e8cb90e7d 前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测 ...
- C#.NET常见问题(FAQ)-如何把文本复制粘贴到文本框的光标位置
前面已经通过Clipborad.SetText之后,这里就要先把目标文本框的文本改成插入之后的值,然后修改光标所在位置
- Python+OpenCV实现FasterRcnn样本查看器
一.上代码 import cv2 import os def get_samples(dir): datasets = [] files = os.listdir(dir) for file in f ...
- Linux实现多线程高速下载
使用Wget下载,有时候速度挺慢的. 有没有好办法呢? 一.解决方案 安装axel 安装方法: yum -y install epel-release .el7.x86_64.rpm rpm -ivh ...
- Linux内核配置:Kconfig
Linux内核源码中,差不多有300个内核子目录都包含了名为Kconfig的文件.这个文件用于配置其所在目录的源码的特性.Kconfig中的每个配置参数都有附带的帮助文本,配置子系统会解析Kconfi ...
- vue中的ajax - axios
vue中的ajax - axios axios - 简书 使用 axios 实现 ajax 方案 VUE 更好的 ajax 上传处理 axios.js vue.js 自2.0版本已经不对 vue-re ...
- Android下雪动画的实现
原文链接 : Snowfall 原文作者 : Styling Android 译文出自 : hanks.xyz 译者 : hanks-zyh 校对者: desmond1121 状态 : 完毕 这本是一 ...
- 【Zookeeper】源码分析之请求处理链(二)之PrepRequestProcessor
一.前言 前面学习了请求处理链的RequestProcessor父类,接着学习PrepRequestProcessor,其通常是请求处理链的第一个处理器. 二.PrepRequestProcessor ...
- [转]一个简洁的 systemd 操作指南
1.服务权限systemd有系统和用户区分:系统(/user/lib/systemd/system/).用户(/etc/lib/systemd/user/). 一般系统管理员手工创建的单元文件建议存放 ...