`
xiaoaoxiaozi
  • 浏览: 5163 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

JAVA开发_CSV格式文件解析

 
阅读更多
  • 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;
 }
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics