您的位置:首页 > 编程语言 > Java开发

JAVA开发_CSV格式文件解析

2015-05-08 16:38 447 查看
CSV格式文件解析

/**
* CSV格式文件解析
*
* @param fileName
* @param tag
* @return
*/
private Map parseCsvFile(String fileName, String tag, String oid_reguser) {
log.info(tag + "进入解析txt/csv文件格式方法");
List parseList = new ArrayList();
Map map = new HashMap();
FileInputStream fr = null;
BufferedReader br = null;
try {
fr = new FileInputStream(fileName);
br = new BufferedReader(new InputStreamReader(fr, "GBK"));

String firstLine = br.readLine();
log.info("读取批量付款文件头信息:" + firstLine);
Blacklist blacklist = new Blacklist();

map = checkCsvFile(br, tag, oid_reguser);
if (!"succ".equals(map.get("ret_code"))) {
return map;
}
if (((List) map.get("parseList")).size() >= Long.parseLong(SUPPORT_RISK_BLACKLIST_NO)) {
map.put("ret_code", "fail");
map.put("ret_msg", "批量文件总笔数超限!");
return map;
}
map.put("ret_code", "succ");
map.put("ret_msg", "Csv/Txt文件解析成功!");
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (fr != null)
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return map;
}


CSV格式文件信息校验

/**
* CSV格式文件信息校验
*
* @param br
* @param tag
* @return
*/
private Map checkCsvFile(BufferedReader br, String tag, String oid_reguser) {
String line = "";
String[] lineArray = null;
Map map = new HashMap();
int count = 0;
List parseList = new ArrayList();
try {
while ((line = br.readLine()) != null) {
log.info("读取数据:" + line);
Blacklist tmplist = new Blacklist();
if (FuncUtils.isNull(line) || "".equals(line.replace(" ", ""))) {
continue;
}
count++;
lineArray = line.split(",", 11);

tmplist.setPartnerid(oid_reguser);
tmplist.setCreatetime(DateUtil.getCurrentDate());
tmplist.setState(NO_AUDIT);
tmplist.setDimensionname(lineArray.length > 0 ? lineArray[0]
: "");
tmplist.setContent(lineArray.length > 1 ? lineArray[1]
: "");
tmplist.setRisktypename(lineArray.length > 2 ? lineArray[2]
: "");
tmplist.setCasetimestr(lineArray.length > 3 ? lineArray[3]
: "");
tmplist.setComment(lineArray.length > 4 ? lineArray[4]
: "");
JSONObject resObj = checkLineData(tmplist, tag);
if (resObj == null) {
map.put("ret_code", "fail");
map.put("ret_msg", "第[" + count + "]笔信息解析异常");
return map;
}
if ("9999".equals(resObj.get("ret_code"))) {
map.put("ret_code", "fail");
map
.put("ret_msg", "第[" + count + "]笔"
+ resObj.get("ret_msg"));
return map;
}else if ("1111".equals(resObj.get("ret_code"))) {
// 特殊情况一行信息中前三组数据为空
break;
}
parseList.add(tmplist);
}
map.put("ret_code", "succ");
map.put("parseList", parseList);
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return map;
}


Csv文件单行信息校验

/**
* Csv文件单行信息校验
*
* @param traderPaySel
* @param tag
* @return
*/
private JSONObject checkLineData(Blacklist blacklist, String tag) {
log.info(tag + "csv批量付款解析文件数据校验");
JSONObject retObj=new JSONObject();

if (FuncUtils.isNull(blacklist.getDimensionname().replace(" ", ""))
&& FuncUtils.isNull(blacklist.getContent().replace(" ", ""))
&& FuncUtils.isNull(blacklist.getRisktypename().replace(" ", ""))) {// 特殊情况,读取文件越界时处理
retObj.put("ret_code", "1111");
return retObj;
}
// 非空校验
if (FuncUtils.isNull(blacklist.getDimensionname())
|| "".equals(blacklist.getDimensionname().replace(" ", ""))) {// 维度非空校验
log.info(tag + "维度为空");
retObj.put("ret_code", "9999");
retObj.put("ret_msg", "维度有误,请核实后重新上传!");
return retObj;
}
if (FuncUtils.isNull(blacklist.getContent())
|| "".equals(blacklist.getContent().replace(" ", ""))) {// 维度内容非空校验
log.info(tag + "维度内容为空");
retObj.put("ret_code", "9999");
retObj.put("ret_msg", "维度内容有误,请核实后重新上传!");
return retObj;
}
if (FuncUtils.isNull(blacklist.getRisktypename())
|| "".equals(blacklist.getRisktypename().replace(" ", ""))) {
log.info(tag + "风险类型为空");
retObj.put("ret_code", "9999");
retObj.put("ret_msg", "风险类型有误,请核实后重新上传!");
return retObj;
}
retObj.put("ret_code", "0000");
retObj.put("ret_msg", "解析成功");

return retObj;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 开发 解析