CN112612505A - 一种基于jdk流程处理的通用文件处理方法及系统 - Google Patents
一种基于jdk流程处理的通用文件处理方法及系统 Download PDFInfo
- Publication number
- CN112612505A CN112612505A CN202011407351.6A CN202011407351A CN112612505A CN 112612505 A CN112612505 A CN 112612505A CN 202011407351 A CN202011407351 A CN 202011407351A CN 112612505 A CN112612505 A CN 112612505A
- Authority
- CN
- China
- Prior art keywords
- file
- processed
- result
- content
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012545 processing Methods 0.000 title claims abstract description 32
- 230000008569 process Effects 0.000 title claims abstract description 16
- 238000003672 processing method Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 7
- 230000014509 gene expression Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012937 correction Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 3
- 239000000126 substance Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于jdk流程处理的通用文件处理方法及系统,涉及电信业务支撑技术领域,包括保存待处理文件的配置信息;其中,配置信息包括文件类型;根据待处理文件的文件类型匹配待处理文件的读取方法,基于读取方法解析并获取待处理文件的行内容;对获取的行内容进行校验;根据结果文件格式需求匹配结果文件的创建方法,并创建结果文件。该发明的有益效果是:该方法进行业务文件处理时可适配多种文件格式和类型,无需重复开发,节省业务开发环节的工作量。
Description
技术领域
本发明涉及电信业务支撑技术领域,尤其是涉及一种基于jdk流程处理的通用文件处理方法及系统。
背景技术
在电信行业的服务开发过程中,多种业务场景如批量业务、文件接口等,需要对各种不同格式的文件进行处理。
目前在电信业务开发过程中,存在文件处理重复造轮子的现象,每次遇到文件处理时,都会进行一次开发,因而不能将主要的开发设计精力集中在业务逻辑本身;由于每次开发的业务处理逻辑多样,遇到的维护问题也比较多样等,浪费了大量人力。
发明内容
针对上述问题,本发明提供了一种基于jdk流程处理的通用文件处理方法及系统,将与业务无关的文件处理逻辑独立出来,并通过配置实现个性化文件读取、检验、文件内容入库及结果文件创建等功能。
为实现上述目的,本发明提供了一种基于jdk流程处理的通用文件处理方法,包括:
保存待处理文件的配置信息;其中,配置信息包括文件类型;
根据所述待处理文件的文件类型匹配待处理文件的读取方法,基于所述读取方法解析并获取待处理文件的行内容;
对获取的所述行内容进行校验;
根据结果文件格式需求匹配结果文件的创建方法,并创建结果文件。
作为本发明的进一步改进,所述保存待处理文件的配置信息,包括:
通过构造函数将待处理文件配置信息从数据库保存到内存中。
作为本发明的进一步改进,所述读取方法采用jdk支持的流式读取。
作为本发明的进一步改进,所述基于读取方法解析并获取待处理文件的行内容,包括:
获取的行内容为Stream格式的行内容。
作为本发明的进一步改进,
当待处理文件为文本文件时,通过BufferedReader.lines语句获取待处理文件配置信息中的行字符串,根据所述行字符串中的列分隔符分割字符串为列数组,得到行内容;
当待处理文件为Excel文件时,基于poi工具类解析Excel文件,定义行遍历器,通过行遍历器获取行内容。
作为本发明的进一步改进,所述对获取的行内容进行校验,包括:
根据预设的文件配置表中对各项内容的要求,依次对行内容逐行逐列进行校验,若校验均通过则待处理文件处理成功;若校验某一项不通过,则待处理文件处理失败。
作为本发明的进一步改进,校验的内容包括:必填项验证、字母大小写校对和列正则表达式的匹配。
作为本发明的进一步改进,所述根据结果文件格式需求匹配结果文件创建的抽象方法,并获取结果文件,包括:
当结果文件要求为文本文件时,将校验后的所述行内容中每行信息添加列分隔符合并为一个字符串,并添加换行符,循环写入文本文件;
当结果文件要求为Excel文件时,基于pio工具类将校验后的内容循环写入Excel文件。
作为本发明的进一步改进,还包括:根据数据库存储结构要求对结果文件进行行列映射转换并入库。
本发明还提供了一种实现如上所述的方法的系统,包括:数据缓存模块、文件读取模块、文件校验模块和结果输出模块;
所述数据缓存模块,用于:
保存待处理文件的配置信息;其中,配置信息包括文件类型;
所述文件读取模块,用于:
根据待处理文件的文件类型匹配待处理文件的读取方法,基于所述读取方法解析待处理文件的行内容;
所述文件校验模块,用于:
对获取的所述行内容进行校验;
所述结果输出模块,用于:
根据结果文件格式需求匹配结果文件的创建方法,创建结果文件。
与现有技术相比,本发明的有益效果为:
本发明将与业务无关的文件处理逻辑独立出来,通过配置一种通用文件处理方法,根据文件类型判断匹配不同的文件读取方法,进而实现对不同格式文件的读取、校验、创建结果文件及文件内容入库;同时文件处理中使用jdk支持的流式读取,提高了文件处理速度。
附图说明
图1为本发明一种实施例公开的基于jdk流程处理的通用文件处理方法流程图;
图2为本发明一种实施例公开的实现基于jdk流程处理的通用文件处理方法的系统示意图;
图3为本发明一种实施例公开的配置表中文件定义表展示图;
图4为本发明一种实施例公开的配置表中文件列定义表展示图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
实施例:
如图1所示,本发明提供的一种基于jdk流程处理的通用文件处理方法,包括:
S1、保存待处理文件的配置信息;其中,配置信息包括文件类型;
进一步的,通过构造函数将待处理文件配置信息从数据库保存到内存中。
S2、根据待处理文件的文件类型匹配待处理文件的读取方法,基于读取方法解析并获取待处理文件的行内容;
其中,
读取方法采用jdk支持的流式读取;
获取的行内容为Stream格式的行内容;
进一步的,
当待处理文件为文本文件时,通过BufferedReader.lines()获取待处理文件配置信息中的行字符串,根据行字符串中的列分隔符分割字符串为列数组,得到行内容;
当待处理文件为Excel文件时,基于poi工具类解析Excel文件,定义行遍历器,通过行遍历器获取行内容。
S3、对获取的行内容进行校验;
其中,
根据预设的文件配置表中对各项内容的要求,依次对行内容逐行逐列进行校验,若校验均通过则待处理文件处理成功;若校验某一项不通过,则待处理文件处理失败;
校验的内容包括:必填项验证、字母大小写校对和列正则表达式的匹配。
进一步的,文件配置表可包括文件定义表(如图3所示)和文件列定义表(如图4所示),文件定义表对文件信息进行限定;文件列定义表对文件内容进行限定;文件定义表包括文件标签、文件名称、文件后缀、文件最大行数、文件类型、列分隔符、生效状态、代表号码类型等;文件列定义表包括文件标识、列英文简称、列序号、最小长度、最大长度、列数据类型、列正则表达式、示例数据、保存字段、是否必填等;
校验过程如下:
(1)进行总列数校验,总列数要同文件列定义表中配置的列数相同,否则检验不通过,返回;
(2)循环文件信息,获取并循环每行内容从内存中获取列配置信息,根据文件列定义表对行内容进行逐列校验:
a、必填校验,使用StringUtils.isBlank判断列内容是否为空,为空则检验不通过,返回;
b、内容长度检验,判断列内容的长度是否在配置的最小长度和最大长度范围内,否者检验不通过,返回;
c、正则表达校验,根据配置中的正则表达式数据对列内容进行正则匹配,如果能够匹配则通过,否则检验不通过,返回。
S4、根据结果文件格式需求匹配结果文件的创建方法,创建结果文件。
其中,
当结果文件要求为文本文件时,将校验后的行内容中每行信息添加列分隔符合并为一个字符串,并添加换行符,循环写入文本文件;
当结果文件要求为Excel文件时,基于pio工具类将校验后的内容循环写入Excel文件。
S5、根据数据库存储结构要求对结果文件进行行列映射转换并入库。
如图2所示,本发明还提供一种实现基于jdk流程处理的通用文件方法的系统,包括:数据缓存模块、文件读取模块、文件校验模块和结果输出模块;
数据缓存模块,用于,
保存待处理文件的配置信息;其中,配置信息包括文件类型;
文件读取模块,用于,
根据待处理文件的文件类型匹配待处理文件的读取方法,基于读取方法解析待处理文件的行内容;
文件校验模块,用于,
对获取的行内容进行校验;
结果输出模块,用于,
根据结果文件格式需求匹配结果文件的创建方法,创建结果文件。
本发明最终将各模块共同打包成jar包,组成文件处理器,在业务流程处理需要时,可通过maven(项目对象模型)或直接应用的方法引入该文件处理器。
本发明的优点:
本发明将与业务无关的文件处理逻辑独立出来,通过配置一种通用文件处理方法,根据文件类型判断匹配不同的文件读取方法,进而实现对不同格式文件的读取、校验、创建结果文件及文件内容入库;同时文件处理中使用jdk支持的流式读取,提高了文件处理速度。
本发明系统模块打包为文件处理器,可通过maven(项目对象模型)或直接应用的方法引入到业务处理逻辑中的文件处理位置,再在数据库中根据数据需要创建配置表并进行相关配置,即可直接使用,无需再次进行代码开发,大大节省了人力成本和开发时间。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于jdk流程处理的通用文件处理方法,其特征在于,包括:
保存待处理文件的配置信息;其中,配置信息包括文件类型;
根据所述待处理文件的文件类型匹配待处理文件的读取方法,基于所述读取方法解析并获取待处理文件的行内容;
对获取的所述行内容进行校验;
根据结果文件格式需求匹配结果文件的创建方法,并创建结果文件。
2.根据权利要求1所述的通用文件处理方法,其特征在于:所述保存待处理文件的配置信息,包括:
通过构造函数将待处理文件配置信息从数据库保存到内存中。
3.根据权利要求1所述的通用文件处理方法,其特征在于:所述读取方法采用jdk支持的流式读取。
4.根据权利要求1所述的通用文件处理方法,其特征在于,所述基于读取方法解析并获取待处理文件的行内容,包括:
获取的行内容为Stream格式的行内容。
5.根据权利要求1或4所述的通用文件处理方法,其特征在于:
当待处理文件为文本文件时,通过BufferedReader.lines语句获取待处理文件配置信息中的行字符串,根据所述行字符串中的列分隔符分割字符串为列数组,得到行内容;
当待处理文件为Excel文件时,基于poi工具类解析Excel文件,定义行遍历器,通过行遍历器获取行内容。
6.根据权利要求1所述的通用文件处理方法,其特征在于,所述对获取的行内容进行校验,包括:
根据预设的文件配置表中对各项内容的要求,依次对行内容逐行逐列进行校验,若校验均通过则待处理文件处理成功;若校验某一项不通过,则待处理文件处理失败。
7.根据权利要求1或6所述的通用文件处理方法,其特征在于,校验的内容包括:必填项验证、字母大小写校对和列正则表达式的匹配。
8.根据权利要求1所述的通用文件处理方法,其特征在于,所述根据结果文件格式需求匹配结果文件创建的抽象方法,并获取结果文件,包括:
当结果文件要求为文本文件时,将校验后的所述行内容中每行信息添加列分隔符合并为一个字符串,并添加换行符,循环写入文本文件;
当结果文件要求为Excel文件时,基于pio工具类将校验后的内容循环写入Excel文件。
9.根据权利要求1所述的通用文件处理方法,其特征在于,还包括:根据数据库存储结构要求对结果文件进行行列映射转换并入库。
10.一种实现权利要求1~9任一项所述的通用文件处理方法的系统,其特征在于,包括:数据缓存模块、文件读取模块、文件校验模块和结果输出模块;
所述数据缓存模块,用于:
保存待处理文件的配置信息;其中,配置信息包括文件类型;
所述文件读取模块,用于:
根据待处理文件的文件类型匹配待处理文件的读取方法,基于所述读取方法解析待处理文件的行内容;
所述文件校验模块,用于:
对获取的所述行内容进行校验;
所述结果输出模块,用于:
根据结果文件格式需求匹配结果文件的创建方法,创建结果文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011407351.6A CN112612505B (zh) | 2020-12-04 | 2020-12-04 | 一种基于jdk流程处理的通用文件处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011407351.6A CN112612505B (zh) | 2020-12-04 | 2020-12-04 | 一种基于jdk流程处理的通用文件处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612505A true CN112612505A (zh) | 2021-04-06 |
CN112612505B CN112612505B (zh) | 2024-01-30 |
Family
ID=75228901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011407351.6A Active CN112612505B (zh) | 2020-12-04 | 2020-12-04 | 一种基于jdk流程处理的通用文件处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612505B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114287A1 (en) * | 2003-11-21 | 2005-05-26 | Hoberman Gary A. | Method and system for data file processing |
KR20140035022A (ko) * | 2012-09-13 | 2014-03-21 | 주식회사 구슬 | 웹 기반의 컨텐츠를 복수개의 문서 형식 중 사용자가 원하는 형식의 문서파일로 변환하여 제공하는 문서 제공 서버 |
CN106302581A (zh) * | 2015-05-21 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 批量数据的导入方法及系统 |
CN108763176A (zh) * | 2018-04-10 | 2018-11-06 | 达而观信息科技(上海)有限公司 | 一种文档处理方法及装置 |
CN110019153A (zh) * | 2017-09-13 | 2019-07-16 | 北京宸信征信有限公司 | 一种多类型批量数据处理系统及其处理方法 |
CN110069449A (zh) * | 2019-03-20 | 2019-07-30 | 平安科技(深圳)有限公司 | 文件处理方法、装置、计算机设备和存储介质 |
CN111339041A (zh) * | 2020-03-10 | 2020-06-26 | 中国建设银行股份有限公司 | 文件解析入库、文件生成方法及装置 |
-
2020
- 2020-12-04 CN CN202011407351.6A patent/CN112612505B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114287A1 (en) * | 2003-11-21 | 2005-05-26 | Hoberman Gary A. | Method and system for data file processing |
KR20140035022A (ko) * | 2012-09-13 | 2014-03-21 | 주식회사 구슬 | 웹 기반의 컨텐츠를 복수개의 문서 형식 중 사용자가 원하는 형식의 문서파일로 변환하여 제공하는 문서 제공 서버 |
CN106302581A (zh) * | 2015-05-21 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 批量数据的导入方法及系统 |
CN110019153A (zh) * | 2017-09-13 | 2019-07-16 | 北京宸信征信有限公司 | 一种多类型批量数据处理系统及其处理方法 |
CN108763176A (zh) * | 2018-04-10 | 2018-11-06 | 达而观信息科技(上海)有限公司 | 一种文档处理方法及装置 |
CN110069449A (zh) * | 2019-03-20 | 2019-07-30 | 平安科技(深圳)有限公司 | 文件处理方法、装置、计算机设备和存储介质 |
CN111339041A (zh) * | 2020-03-10 | 2020-06-26 | 中国建设银行股份有限公司 | 文件解析入库、文件生成方法及装置 |
Non-Patent Citations (8)
Title |
---|
ARCHITECT_CSDN: "java读取txt文件以逗号分隔问题", pages 1, Retrieved from the Internet <URL:《https://blog.csdn.net/Architect_CSDN/article/details/87548903》> * |
BAIHONGBIN: "文件读取(excel word ppt txt pdf等)utils", pages 1 - 6, Retrieved from the Internet <URL:《https://www.jianshu.com/p/5a2b47f6edb4》> * |
TRANSFORMING SPREADSHEET DATA TYPES USING EXAMPLES RISHABH SINGH 等: "Transforming spreadsheet data types using examples", 《POPL \'16: PROCEEDINGS OF THE 43RD ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES》, pages 343 - 356 * |
指尖上的行者: "JAVA读取WORD, EXCEL, PDF, TXT, RTF, HTML文件文本内容的方法示例", pages 1 - 6, Retrieved from the Internet <URL:《https://blog.csdn.net/zlb824/article/details/7020191》> * |
曹鼎: "文件类型识别技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, pages 138 - 2806 * |
杜青松 等: "基于Excel 工作表和Txt 文本文档批量处理度分秒与十进制度之间的转换", 《电脑知识与技术》, vol. 15, no. 4, pages 226 - 227 * |
酱油和醋: "Java 利用POI 解析Excel", pages 1 - 4, Retrieved from the Internet <URL:《https://www.jianshu.com/p/3798a78303f8》> * |
黄进广寒: "Java8中Stream详细用法大全", pages 1 - 6, Retrieved from the Internet <URL:《https://www.cnblogs.com/huangjinyong/p/14011999.html》> * |
Also Published As
Publication number | Publication date |
---|---|
CN112612505B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2671190B1 (en) | System for data extraction and processing | |
CN109871319A (zh) | 项目代码扫描方法、装置、计算机设备及存储介质 | |
CN112732567B (zh) | 基于ip的mock数据测试方法、装置、电子设备及存储介质 | |
CN113627168B (zh) | 一种元器件封装冲突的检查方法、装置、介质及设备 | |
CN112528307A (zh) | 服务请求校验方法、装置、电子设备及存储介质 | |
CN103038762B (zh) | 自然语言处理装置、方法 | |
CN115391439B (zh) | 文档数据导出方法、装置、电子设备和存储介质 | |
CN112528616A (zh) | 业务表单生成方法、装置、电子设备及计算机存储介质 | |
CN112882995A (zh) | 脚本自动生成方法、装置、电子设备及存储介质 | |
CN111831920A (zh) | 用户需求分析方法、装置、计算机设备及存储介质 | |
US11537785B1 (en) | Spreadsheet flat data extractor | |
CN114757619A (zh) | 一种包裹运输状态识别方法和相关设备 | |
CN113051224A (zh) | 文件传输方法、装置、电子设备及计算机可读存储介质 | |
CN113282854A (zh) | 数据请求响应方法、装置、电子设备及存储介质 | |
CN112612505A (zh) | 一种基于jdk流程处理的通用文件处理方法及系统 | |
CN112906352A (zh) | 一种车辆保险电子保单文本识别和抽取方法及系统 | |
CN110377885B (zh) | 转换pdf文件的方法、装置、设备和计算机存储介质 | |
CN110543641B (zh) | 一种中外文信息对比方法及装置 | |
CN116775575A (zh) | 一种文件合并方法、装置、电子设备及存储介质 | |
CN115294586A (zh) | 一种识别发票的方法、装置、存储介质及电子设备 | |
CN113221888B (zh) | 车牌号管理系统测试方法、装置、电子设备及存储介质 | |
CN114154020A (zh) | 基于动态标签映射的大容量数据处理方法及装置 | |
CN115294593A (zh) | 一种图像信息抽取方法、装置、计算机设备及存储介质 | |
CN110874398B (zh) | 违禁词处理方法、装置、电子设备及存储介质 | |
CN111538750A (zh) | 一种信息还原方法、装置、计算机系统及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |