CN115712601A - 一种基于springbatch批量读取定长文件的方法 - Google Patents
一种基于springbatch批量读取定长文件的方法 Download PDFInfo
- Publication number
- CN115712601A CN115712601A CN202211506973.3A CN202211506973A CN115712601A CN 115712601 A CN115712601 A CN 115712601A CN 202211506973 A CN202211506973 A CN 202211506973A CN 115712601 A CN115712601 A CN 115712601A
- Authority
- CN
- China
- Prior art keywords
- length
- fixed
- reading
- attribute
- springbatch
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于springbatch批量读取定长文件的方法,包括以下步骤:按行读取待解析文件,得到字符串;创建多个映射类,各映射类包括定长文件及其不同属性;在映射类内添加注解,所述注解包括所述属性及各所述属性的长度;根据得到的字符串找到对应的映射类,获取对应定长文件及其属性;根据对应的映射类内注解获取各属性的长度;根据各属性的长度将字符串划分为多个不同长度的字节,并得到对应的数据。本发明通过按行读取待解析文件,得到字符串,并通过获取映射类注解中的属性长度将字符串划分,从而可以读取并处理固定字节长度的内容,因此可以区分并处理英文、数字和汉字等各类字符。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于springbatch批量读取定长文件的方法。
背景技术
目前使用springBatch进行文件批处理时,主要步骤为ItemReader(从数据源读取数据)、ItemProcessor(对读取的数据进行处理)、ItemWriter(存储处理后的数据)。通常是逐条读取并按分隔符或者字节数进行文件内容的解析,但是在金融场景下,文件内容一般是字节定长,有英文、数字和汉字等各类字符,不同的字符类型有时单个字符的字节数不同。
现有技术中,批量读取文件是通过FlatFileItemReader类进行文件读取,该类通过设置分隔符或者固定字符长度读取行内容,但无法读取和处理固定字节长度的内容。
因此有必要提供一种基于springbatch批量读取定长文件的方法,以读取并处理固定字节长度的内容。
发明内容
本发明的目的在于提供一种基于springbatch批量读取定长文件的方法,以读取并处理固定字节长度的内容。
为了解决现有技术中存在的问题,本发明提供了一种基于springbatch批量读取定长文件的方法,包括以下步骤:
按行读取待解析文件,得到字符串;
创建多个映射类,各映射类包括定长文件及其不同属性;
在映射类内添加注解,所述注解包括所述属性及各所述属性的长度;
根据得到的字符串找到对应的映射类,获取对应定长文件及其属性;
根据对应的映射类内注解获取各属性的长度;
根据各属性的长度将字符串划分为多个不同长度的字节,并得到对应的数据。
可选的,在所述基于springbatch批量读取定长文件的方法中,按行读取待解析文件的实现方式为:在读取待解析文件的接口设置FiledSetMapper属性。
可选的,在所述基于springbatch批量读取定长文件的方法中,根据不同的定长文件创建不同的映射类。
可选的,在所述基于springbatch批量读取定长文件的方法中,所述注解还包括属性的序号和/或属性的类型。
可选的,在所述基于springbatch批量读取定长文件的方法中,还包括以下步骤:将得到的数据进行写操作。
可选的,在所述基于springbatch批量读取定长文件的方法中,写操作时,根据预设格式进行右补空格或左补0。
可选的,在所述基于springbatch批量读取定长文件的方法中,对完成写操作后的数据做持久化处理。
可选的,在所述基于springbatch批量读取定长文件的方法中,所述持久化处理包括保存至数据库。
在本发明所提供的基于springbatch批量读取定长文件的方法中,通过按行读取待解析文件,得到字符串,并通过获取映射类注解中的属性长度将字符串划分,从而可以读取并处理固定字节长度的内容,因此可以区分并处理英文、数字和汉字等各类字符。
附图说明
图1为本发明实施例提供的批量读取定长文件的方法的流程图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
在下文中,如果本文所述的方法包括一系列步骤,本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
现有技术中,批量读取文件是通过FlatFileItemReader类进行文件读取,该类通过设置分隔符或者固定字符长度读取行内容,但无法读取和处理固定字节长度的内容。
为了解决现有技术中存在的问题,本发明提供了一种基于springbatch批量读取定长文件的方法,如图1所示,包括以下步骤:
按行读取待解析文件,得到字符串;
创建多个映射类,各映射类包括定长文件及其不同属性;
在映射类内添加注解,所述注解包括所述属性及各所述属性的长度;
根据得到的字符串找到对应的映射类,获取对应定长文件及其属性;
根据对应的映射类内注解获取各属性的长度;
根据各属性的长度将字符串划分为多个不同长度的字节,并得到对应的数据。
进一步的,按行读取待解析文件的实现方式为:创建实现FiledSetMapper接口的类,该类用于配置FlatFileItemReader中lineMapper的FiledSetMapper属性,可实现对于文件整行的读取。读取时,设置ItemReader的文件路径属性,设置编码格式。
可选的,在所述基于springbatch批量读取定长文件的方法中,本发明中根据不同的定长文件创建不同的映射类,所述映射类包括定长文件及其不同属性。并且,所述注解包括所述属性及各所述属性的长度、序号和/或类型等。例如账户同步文件如果定长是30位,其中第1至10位是账号,第11位至30位是***,那么注解中的属性为账号时,其长度为10位,属性为***时,其长度为20位。
通常的,所述方法还包括以下步骤:将得到的数据进行写操作。写操作之前,得到的数据可能已经根据其他格式进行处理,例如数据为00010,则可能处理为10,那么在写操作时,根据预设格式进行右补空格或左补0,若预设格式是6位,则需要左补4个0,写为000010。
优选的,对完成写操作后的数据做持久化处理。所述持久化处理可以为保存至数据库。
综上,在本发明所提供的基于springbatch批量读取定长文件的方法中,通过按行读取待解析文件,得到字符串,并通过获取映射类注解中的属性长度将字符串划分,从而可以读取并处理固定字节长度的内容,因此可以区分并处理英文、数字和汉字等各类字符。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。
Claims (8)
1.一种基于springbatch批量读取定长文件的方法,其特征在于,包括以下步骤:
按行读取待解析文件,得到字符串;
创建多个映射类,各映射类包括定长文件及其不同属性;
在映射类内添加注解,所述注解包括所述属性及各所述属性的长度;
根据得到的字符串找到对应的映射类,获取对应定长文件及其属性;
根据对应的映射类内注解获取各属性的长度;
根据各属性的长度将字符串划分为多个不同长度的字节,并得到对应的数据。
2.如权利要求1所述的基于springbatch批量读取定长文件的方法,其特征在于,按行读取待解析文件的实现方式为:在读取待解析文件的接口设置FiledSetMapper属性。
3.如权利要求1所述的基于springbatch批量读取定长文件的方法,其特征在于,根据不同的定长文件创建不同的映射类。
4.如权利要求1所述的基于springbatch批量读取定长文件的方法,其特征在于,所述注解还包括属性的序号和/或属性的类型。
5.如权利要求1所述的基于springbatch批量读取定长文件的方法,其特征在于,还包括以下步骤:将得到的数据进行写操作。
6.如权利要求5所述的基于springbatch批量读取定长文件的方法,其特征在于,写操作时,根据预设格式进行右补空格或左补0。
7.如权利要求5所述的基于springbatch批量读取定长文件的方法,其特征在于,对完成写操作后的数据做持久化处理。
8.如权利要求7所述的基于springbatch批量读取定长文件的方法,其特征在于,所述持久化处理包括保存至数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506973.3A CN115712601A (zh) | 2022-11-29 | 2022-11-29 | 一种基于springbatch批量读取定长文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506973.3A CN115712601A (zh) | 2022-11-29 | 2022-11-29 | 一种基于springbatch批量读取定长文件的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115712601A true CN115712601A (zh) | 2023-02-24 |
Family
ID=85235131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211506973.3A Pending CN115712601A (zh) | 2022-11-29 | 2022-11-29 | 一种基于springbatch批量读取定长文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115712601A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117332126A (zh) * | 2023-09-11 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 字符串过滤方法、装置、加速卡及介质 |
-
2022
- 2022-11-29 CN CN202211506973.3A patent/CN115712601A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117332126A (zh) * | 2023-09-11 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 字符串过滤方法、装置、加速卡及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4342085A (en) | Stem processing for data reduction in a dictionary storage file | |
CN107729526B (zh) | 一种文本结构化的方法 | |
US9690788B2 (en) | File type recognition analysis method and system | |
CN113609820B (zh) | 基于可扩展标记语言文件生成word文件的方法、装置及设备 | |
RU2003134278A (ru) | Способ и считываемый компьютером носитель для импорта и экспорта иерархически структурированных данных | |
KR20140053888A (ko) | 판식 파일중 구조화 정보 획득방법 및 장치 | |
CN115712601A (zh) | 一种基于springbatch批量读取定长文件的方法 | |
CN103761095B (zh) | 一种生成通用的升级文件头部数据信息的方法 | |
CN115630343A (zh) | 一种电子文档信息的处理方法、装置及设备 | |
CN104699664B (zh) | 一种模板独立的排版***及方法 | |
JP7040227B2 (ja) | 情報処理プログラム、情報処理方法、および情報処理装置 | |
CN111241096A (zh) | 一种excel文档的文本提取方法、***、终端及存储介质 | |
CN112965772A (zh) | web页面显示方法、装置和电子设备 | |
CN101464875B (zh) | 使用xml表示电子字典数据的方法 | |
CN110795915B (zh) | xml文件批量修改方法、***、设备和计算机可读存储介质 | |
CN107145947B (zh) | 一种信息处理方法、装置及电子设备 | |
CN113779218B (zh) | 问答对构建方法、装置、计算机设备和存储介质 | |
CN112347765B (zh) | 基于词典匹配的实体标注方法、模块及装置 | |
CN114880523A (zh) | 字符串处理方法、装置、电子设备及存储介质 | |
CN108875082B (zh) | 一种大容量数据读写处理方法及装置 | |
JPH0619962A (ja) | テキスト分割装置 | |
CN114218895B (zh) | 对uof文档进行转换的方法 | |
CN114997138B (zh) | 一种化学品说明书解析方法、装置、设备及可读存储介质 | |
CN117058273A (zh) | 通用文本图像生成方法、***、电子设备及存储介质 | |
CN108769552B (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 |