使用步骤如下:
pospCheck.ftl模板文件如下:
<#list resultList as dto>
${${dto.oWebSeqNum?default("")},${dto.transDate?default("")},${dto.diffType?default("")},${dto.frontStatus?default("")}</#list>
2.public void buildTestFile(String date) {
List<CheckFeeDto> fileData = CheckDao.getPctData(date); Map map = new HashMap(); map.put("resultList", fileData); String charset = "GBK"; // 模板文件为FTL Writer writer = null; try { String saveLocalPath = FilePath + date.substring(0, 6) + "/" + date.substring(6, 8) + "/"; File checkFileDir = new File(saveLocalPath); if (!checkFileDir.exists()) { checkFileDir.mkdirs(); } String basePath = this.getClass().getResource("/ftl_templates").getPath(); File file=new File(basePath+ "/withdrawFee.ftl"); Configuration conf = Configuration.getDefaultConfiguration(); conf.setDirectoryForTemplateLoading(new File(basePath)); conf.setEncoding(Locale.CHINA, "utf-8"); conf.setOutputEncoding(charset); Template template = conf.getTemplate(file.getName()); writer = new CharArrayWriter(); template.process(map, writer); writer.flush(); String filename =saveLocalPath+"FF_" + date + ".txt"; File outfile = new File(filename); OutputStream os = new FileOutputStream(outfile); FileUtil.save(os, writer.toString().getBytes(charset)); os.flush(); os.close(); writer.close(); } catch (Exception e) { return null; } finally { if (null != writer) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } }
3.FileUtil 类中的save 方法
/**
* 保存字节到输出流中. * @param os 输出流 * @param bytes 字节流 * @throws IOException * 调用完后由调用者应该关闭os输出流. */ public static void save(final OutputStream os, final byte[] bytes) throws IOException { BufferedOutputStream bos = new BufferedOutputStream(os); bos.write(bytes); bos.flush(); }