java导出txt文件

java

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文件 的全部内容, 来源链接: utcz.com/z/392209.html

回到顶部