生活随笔
收集整理的這篇文章主要介紹了
java解析txt文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
廢話不多說,上代碼:
/**
* 解析txt文件,按|進行分割
* @param in
* @param fileDate
* @return
*/
private List readPremiumTxt(InputStream in, String bankCode, String fileDate) {
try {//list接收數(shù)據(jù)List<PremiumInfoVo> dataList = new ArrayList<PremiumInfoVo>();//接受傳入的流 改為gbk編碼BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-8"));//生成文件唯一編號String fileId = UUID.randomUUID().toString();// 讀第一行,獲取總條數(shù)和總金額String lineTxt = br.readLine();String[] firstLine = lineTxt.split("\\|");if(firstLine.length != 2){log.info("保費文件首行字段缺失!");return null;}String totalNum = firstLine[0];String totalAmount = firstLine[1];//從第二行開始遍歷int i = 1 ;while ((lineTxt = br.readLine()) != null) {String[] arrStrings = lineTxt.split("\\|");if(arrStrings.length!=6){log.info("保費文件第{}行字段缺失!",i);return null;}//保費信息實體PremiumInfoVo premiumInfoVo = new PremiumInfoVo();premiumInfoVo.setPremiumBankCode(bankCode);//銀行名稱if(Constant.PremiumConsts.BANK_CODE_PSBCCNBJ.equals(bankCode)){premiumInfoVo.setPremiumBankCode(Constant.PremiumConsts.BANK_CODE_PSBCCNBJ_REAL);premiumInfoVo.setPremiumBank(Constant.PremiumConsts.BANK_NAME_PSBCCNBJ);}premiumInfoVo.setTotalNum(totalNum.trim());premiumInfoVo.setTotalAmount(totalAmount.trim());premiumInfoVo.setOrderNo(arrStrings[0].trim());premiumInfoVo.setCustNo(arrStrings[1].trim());premiumInfoVo.setPaymentAmount(arrStrings[2].trim());premiumInfoVo.setPaymentTime(arrStrings[3].trim());premiumInfoVo.setPaymentWay(arrStrings[4].trim());premiumInfoVo.setPLimit(arrStrings[5].trim());premiumInfoVo.setFileDate(fileDate);premiumInfoVo.setFileId(fileId);premiumInfoVo.setCreateTime(new Date());dataList.add(premiumInfoVo);i++;}br.close();return dataList;} catch (Exception e) {log.info("保費文件讀取異常:{}",e);return null;}
}
總結(jié)
以上是生活随笔為你收集整理的java解析txt文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。