1) 解析txt格式的文件
思路:这种格式的文件的话是相当简单的,通过流流都成每行的数据, 然后将这行数据放到一个集合List中就可以了。 需要注意的是: 解析这些每行数据就是一个对字符串的处理(切割),中需要注意流读取到的提wen这些数据中转移字符的。
public List<String> parse(String channelCharset, byte[] fileContent, Map<String, IFileParser> fileParserMap) throws Exception {
log.info("-----------------资金文件txt格式解析开始------------------------");
List<String> contentList=new ArrayList<String>();
BufferedReader reader = null;
BufferedInputStream input = null;
String charset=channelCharset;
try {
input = new BufferedInputStream(new ByteArrayInputStream(fileContent));
reader = new BufferedReader(new InputStreamReader(input,charset));
int a = 1;
for (String line = reader.readLine(); null != line; line = reader.readLine()) {
if(StringUtils.isEmpty(line)){
continue;
}
line = line + Constants.SYMBOL_8 +a;
contentList.add(line);
a ++;
}
} catch (Exception e) {
log.error("----------资金文件txt解析银行回单文件失败", e);
} finally {
reader.close();
input.close();
}
return contentList;
}
//最终读取到的一行数据是一个字符串: 对这个字符串处理的时候需要注意转移字符的问题。
String str = "\" 记账日期\",\" 交易时间 \",\" \",\" 凭证号\",\"借方/贷方\",\" 发生额/元\",\" 余额/元\",\"钞汇标志\",\" 对方户名\",\" 对方账号\",\" 摘要\",\" 备注\",\"账户明细编号-交易流水号\",\"企业流水号\",\"本方账号\",\"本方账户名称\",\"本方账户开户机构\",\"本方账户状态\"\"1";