標籤: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檔案