java匯出txt檔案

來源:互聯網
上載者:User

標籤:pen   pac   param   turn   檔案的   tac   log   end   聲明   

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,則返回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檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.