直接上代码
package com.yuantiaokj.paycentre.rcbnbspcheck.DTO;import lombok.Data;
import lombok.experimental.Accessors;import java.util.List;/*** ************************************************************* Copyright ? 2020 远眺科技 Inc.All rights reserved. * *** ************************************************************** @program: financial_eco-environment_cloud* @description: 农信银代结算文件写入imput* @author: cnzz* @create: 2020-08-04 16:43**/
@Data
@Accessors(chain = true)
public class RcbBatchSettleFileWriteInputDTO {private String filePath;private String fileName;private String encodingFormat;private String fileHead;private List<String> fileDataList;
}
/*** 农信银商户结算文件写入** @param inputDTO RcbBatchSettleFileWriteInputDTO* @return String 生成文件path*/@Overridepublic String rcbMerchantSettleFileWrite(RcbBatchSettleFileWriteInputDTO inputDTO) {BufferedWriter out = null;String relFilePath = null;try {//检查生成文件目录File pathFile = new File(inputDTO.getFilePath());if (!pathFile.exists()) {pathFile.mkdirs();}relFilePath = inputDTO.getFilePath() + File.separator + inputDTO.getFileName();File file = new File(relFilePath);if (!file.exists()) {file.createNewFile();} else {//文件存在,需要清空FileWriter fileWriter = new FileWriter(file);fileWriter.write("");fileWriter.flush();fileWriter.close();}out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), inputDTO.getEncodingFormat()));// //标题头// out.write("curr_time,link_id,travel_time,speed,reliabilitycode,link_len,adcode,time_stamp,state,public_rec_time,ds");// out.newLine();BufferedWriter finalOut = out;//写头部数据finalOut.write(inputDTO.getFileHead());finalOut.newLine();//写数据行inputDTO.getFileDataList().forEach(info -> {try {finalOut.write(info);finalOut.newLine();} catch (IOException e) {e.printStackTrace();}});} catch (IOException e) {e.printStackTrace();} finally {if (out != null) {try {out.flush();out.close();} catch (IOException e) {e.printStackTrace();}}return relFilePath;}}