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

时间: 2024-10-29 04:29:58

java导出txt文件的相关文章

Java导出txt模板——(一)

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

asp mvc 导出txt 文件泛型方法

asp mvc 导出txt 文件泛型方法分享: public static void ExportFile<T>(T obj) { StringBuilder str = new StringBuilder(); //列出obj 对象中的所有属性 System.Reflection.PropertyInfo[] properties = obj.GetType().GetProperties(); if (properties != null && properties.Len

java读取TXT文件的方法

java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了FileInputStream().那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据 解读完成后要输出

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

//DataGirdview手动添加数据 private void btnDataGirdView_Click(object sender,EventArgs e) { dataGridView1.Columns.Add("a","标题1"); dataGridView1.Columns.Add("b","标题2"); dataGridView1.Columns.Add("c","标题3"

JAVA获取txt文件内容

JAVA 读取txt文件内容 通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文件字符编码即可. 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileReader; 4 5 6 public class txttest { 7 /** 8 * 读取txt文件的内容 9 * @param file 想要读取的文件对象 10 * @return 返回文件内容

java 读写 txt 文件

Java读取txt文件内容.可以作如下理解: 1.首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 2.通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 3.既然你使用了FileInputStream().那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据 4.

java读取TXT文件的方法 (转)

转自:http://www.cnblogs.com/manongxiaojiang/archive/2012/10/13/2722068.html java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了F

Java 读写TXT文件

public class GenCategoryAttrItemHandler { private final static String INPUT_FILE_PATH = "input/category_attr_item.txt"; private final static String OUTPUT_FLIE_PATH = "output/category_attr_itemList.txt"; /** * @param args * @throws IOE

Java读取txt文件,换行写txt文件

1. Java读取txt文件 package com.campu; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.Reader; /** * H20121012.java */ public class H2