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格式文件信息校验
*
* @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;
}
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>
分享到:
相关推荐
面向开发人员,和经常接触使用各种二维码的人,这个工具能帮助开发二维码的人员生成各种格式二维码,包括png,jpg,bpm,gif,SVG(矢量),EPS(矢量),PDF(矢量),并且能够调用电脑的摄像头扫描二维码,将码...
poi教程,用于java解析,excel文件转换,在我们实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为最多人使用的浏览器,因为大家都用Windows。在企业办公系统中,常常有客户这样子要求:你要把我们的报表...
面向开发人员,和经常接触使用各种二维码的人,这个工具能帮助开发二维码的人员生成各种格式二维码,包括png,jpg,bpm,gif,SVG(矢量),EPS(矢量),PDF(矢量),并且能够调用电脑的摄像头扫描二维码,将码...
可自动执行数据类型转换(解析和格式化日期、整数、布尔值等)并强制执行约束(必填列、匹配正则表达式等)——如果需要,您可以轻松编写自己的 API。 Super CSV 正在积极维护,如果您遇到困难,开发人员已准备好并...
Java开发基于知识图谱的航天数据可视化系统源码+项目使用说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、...
- **持久化存储**:支持将抓取的数据存储到MySQL、MongoDB等数据库,或者保存为本地文件,如CSV、JSON格式。 - **可配置性**:允许用户通过配置文件定制爬虫行为,如指定目标网站、抓取深度、请求间隔等。 - **错误...
解析成功后,会生成2个CSV文件,一个是通讯录,一个是短信。 在我的博客上分享您的反馈和问题,我在听 :-) #License 版权所有 2015 Prasanta Paul ( ) 根据 Apache 许可证 2.0 版(“许可证”)获得许可; 除非...
刀塔分析帮助将匹配属性导出到 csv 文件以供进一步分析的工具。 这只是为了测试 json 文件的某些属性是否可以在不使用 POJO(Plain old java objects)的情况下解析。 它仅用于测试和开发目的。
csv文件 xls文件 xlsx文件 非关系型数据库: elasticsearch mongoDB 关系型数据库 mysql 简单介绍 核心思想是将所有数据生成规则转化为sql语句然后执行insert语句。如果是mysql数据源则直接由mysql执行,如果是别的...
根据xml格式定义的布局,解析位置数据和CSV数据并将其格式化到Java对象中或从Java对象中格式化。 对于需要将Java与仅了解位置数据的旧系统/语言集成的开发人员特别有用(例如:Cobol)。
包含所有响应持续时间的CSV文件(按URL) 包含所有响应大小的CSV文件(按URL) 可以按请求组生成统计信息和图表。 请求组由URL模式定义。 在执行间隔从远程系统下载资源 建置状态 特拉维斯CI: 帮助 运行此插件的...
该应用程序使用csv jdbc驱动程序来解析CSV文件,并使用Spring Utils LevenshteinDistance查找重复的记录。 JSP和JSTL用于显示重复记录和非重复记录。 项目的所有依赖项都使用Maven pom.xml进行管理和注入。 先决...
扎尔特 一个关于Spring,... [POI]-用于使用纯Java根据Microsoft的OLE 2复合文档格式处理各种文件格式的API。 [JFreeChart]-JFreeChart是免费的100%Java图表库,使开发人员可以轻松地在其应用程序中显示专业质
它有几个部分: 日志解析器1.1 CSV文件转excel文件的转换器1.2 文件解析器,逐行读取excel日志并将重要信息记录在单独的表格中索引器1.1 关键部分是Lucene,用于后续查询的索引关键字1.2 索引创建过程会打开每个...
此IntelliJ IDEA插件根据CSV文件中的建议在SRG名称( field_... , func_... , p_... )旁边添加提示。 CSV必须遵循以下规则: 需要标题行列: validated ( TRUE / FALSE ) class name (字符串) unmapped name ...
USC类解析器 查询包含南卡罗来纳大学课程信息的文件 该程序与Jose Vidal博士的一起使用,该程序可从抓取课程信息。 这使用Apache 包,该包允许您查询许多不同类型的数据存储。 最终,这些代码将在我正在通过研究...
文件和索引“数据库管理系统”课程下的项目开发了一个 Java 程序,用于解析基于 ASCII 文本的 CSV 数据文件,然后将相同的信息转换为内存高效的格式并将其写入二进制数据文件。 为记录的每个字段创建索引文件,以便...
DataGear是一款数据可视化分析平台,使用Java语言开发,采用浏览器/服务器架构,支持SQL、CSV、Excel、HTTP接口、JSON等多种数据源,主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板...
我们开发的软件利用命名实体识别,共指解析,SpellCheck和POS标记来识别用户输入短语中的各种结构,以进行适当的响应。 该软件利用简约的用户界面,使用户可以轻松输入基于访谈的短语并接收与受访者紧密相关的回复...
一个 Maven 插件,用于解析结果 XML 文件并生成带有图表的详细报告 可与同一作者开发的结合使用 特征 响应持续时间和响应大小的某些统计数据(最小值、最大值、平均值、标准偏差、分位数)的文本和 HTML 输出 输出是...