一种快速读取大文件内容方法技术

技术编号:39486730 阅读:17 留言:0更新日期:2023-11-24 11:06
本发明专利技术提供的一种快速读取大文件内容方法

【技术实现步骤摘要】
一种快速读取大文件内容方法、系统、设备及存储介质


[0001]本专利技术涉及计算机应用
,尤其涉及一种快速读取大文件内容方法

系统

设备及存储介质


技术介绍

[0002]在实际应用中,文件读取是一种常见的文件系统操作

尤其在分布式系统中,文件系统作为读取

写入文件的服务之一,会对上游系统产生的各种海量文件进行数据分析及推送数据到下游系统进行业务闭环等操作,所以高效的文件读取方式及合理的数据整合成为文件系统中必不可少的技术优化方向

[0003]现有主流的文件读取方式有三种,自定义程序读取

开源组件
or
工具读取

数据库读取,其中数据库导出
(
读取
)
大文件的效率一般,开源组件

工具读取与写入大文件的效率较高,自定义程序读取大文件的效率主要来自于程序语言本身的优势及底层算法的优化

[0004]但目前的这些方式都存在着一些问题,比如开源组件
or
工具有一定的学习成本且无法定制化,不能对文件内的数据进行有效整合

分析;数据库导出
(
读取
)
文件的定制化程度不高,且导出的文件都是表字段,不能灵活解析,使用
java

IO
流读取大文件会造成内存飙升,容易导致内存溢出造成系统崩溃,同时这些方法都难以将内存映射的数据整合成有规则的数据结构问题

[0005]因此,本专利技术提供一种快速读取大文件内容方法

系统

设备及存储介质,用于解决现有技术难以将内存映射的数据整合成有规则的数据结构问题


技术实现思路

[0006]有鉴于此,有必要提供一种快速读取大文件内容方法

系统

设备及存储介质用于解决上述问题

[0007]本专利技术提供了一种快速读取大文件内容方法,包括:
[0008]接收文件读取请求,所述文件读取请求中包括要读取的目标文件的标识;
[0009]根据所述目标文件的标识,对目标文件进行初始化处理得到初始化处理后的目标文件;
[0010]开启文件通道,通过映射字节缓冲区对所述初始化处理后的目标文件的进行分批量读取,并将读取完成的所述目标文件数据发往下游系统

[0011]在一些可能实现的方式中,所述对目标文件进行初始化处理得到初始化处理后的目标文件,包括:
[0012]计算所述目标文件的大小,并定义所述目标文件的大小变量;
[0013]基于所述目标文件的大小变量,根据预设定义规则,定义所述目标文件的批次读取变量大小;
[0014]完成所述目标文件的大小变量和批次读取变量大小得到初始化处理后的目标文件

[0015]在一些可能实现的方式中,所述开启文件通道,通过映射字节缓冲区对所述初始化处理后的目标文件进行分批量读取,包括:
[0016]建立初始化处理后的目标文件与内存的通道;
[0017]根据所述目标文件的批次读取变量对目标文件进行批次映射到内存中;
[0018]基于预设算法对映射到内存中的目标文件进行数据整合读取

[0019]在一些可能实现的方式中,所述基于预设算法对所述每个拆分后的目标文件进行数据整合直至读取完毕,包括:
[0020]通过时间复杂度为
O(n)
的算法对所述每个拆分后的目标文件进行数据整合直至读取完毕

[0021]在一些可能实现的方式中,所述对目标文件进行初始化处理得到初始化处理后的目标文件,还包括:
[0022]对所述目标文件进行哨兵
cur
定义,并对哨兵
cur
进行初始化

[0023]在一些可能实现的方式中,所述将读取完成的所述目标文件数据发往下游系统,包括:
[0024]通过线程池将读取完成的所述目标文件数据发往下游系统

[0025]在一些可能实现的方式中,当哨兵
cur
等于目标文件大小变量完成所述目标文件的读取

[0026]另一方面,本专利技术还提供快速读取大文件内容系统,包括:
[0027]读取请求模块,接收文件读取请求,所述文件读取请求中包括要读取的目标文件的标识;
[0028]初始化模块,根据所述目标文件的标识,对目标文件进行初始化处理得到初始化处理后的目标文件;
[0029]文件读取模块,开启文件通道,通过映射字节缓冲区对所述初始化处理后的目标文件的进行分批量读取,并将读取完成的所述目标文件数据发往下游系统

[0030]另一方面,本专利技术还提供一种电子设备,包括存储器

处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述所述的一种快速读取大文件内容方法

[0031]另一方面,本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现上述的一种快速读取大文件内容方法

[0032]采用上述实施例的有益效果是:本专利技术提供的一种快速读取大文件内容方法

系统

设备及存储介质,通过接收文件读取请求,所述文件读取请求中包括要读取的目标文件的标识;根据所述目标文件的标识,对目标文件进行初始化处理得到初始化处理后的目标文件;开启文件通道,通过映射字节缓冲区对所述初始化处理后的目标文件的进行分批量读取,并将读取完成的所述目标文件数据发往下游系统

通过将所述目标文件的数据分批映射到内存中,并通过预设算法将数据进行有效整合,现有技术难以将内存映射的数据整合成有规则的数据结构问题

附图说明
[0033]图1为本专利技术提供的一种快速读取大文件内容方法一实施例的流程图;
[0034]图2为本专利技术提供的一种快速读取大文件内容系统一实施例的结构图;
[0035]图3为本专利技术提供的电子设备一实施例的结构示意图

具体实施方式
[0036]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚

完整地描述

显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本邻域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

[0037]应当理解,示意性的附图并未按实物比例绘制

本专利技术中使用的流程图示出了根据本专利技术的一些实施例实现的操作
...

【技术保护点】

【技术特征摘要】
1.
一种快速读取大文件内容方法,其特征在于,包括:接收文件读取请求,所述文件读取请求中包括要读取的目标文件的标识;根据所述目标文件的标识,对目标文件进行初始化处理得到初始化处理后的目标文件;开启文件通道,通过映射字节缓冲区对所述初始化处理后的目标文件的进行分批量读取,并将读取完成的所述目标文件数据发往下游系统
。2.
根据权利要求1所述的一种快速读取大文件内容方法,其特征在于,所述对目标文件进行初始化处理得到初始化处理后的目标文件,包括:计算所述目标文件的大小,并定义所述目标文件的大小变量;基于所述目标文件的大小变量,根据预设定义规则,定义所述目标文件的批次读取变量大小;完成所述目标文件的大小变量和批次读取变量大小得到初始化处理后的目标文件
。3.
根据权利要求2所述的一种快速读取大文件内容方法,其特征在于,所述开启文件通道,通过映射字节缓冲区对所述初始化处理后的目标文件进行分批量读取,包括:建立初始化处理后的目标文件与内存的通道;根据所述目标文件的批次读取变量对目标文件进行批次映射到内存中;基于预设算法对映射到内存中的目标文件进行数据整合读取
。4.
根据权利要求1所述的一种快速读取大文件内容方法,其特征在于,所述基于预设算法对所述每个拆分后的目标文件进行数据整合直至读取完毕,包括:通过时间复杂度为
O(n)
的算法对所述每个拆分后的目标文件进行数据整合直至读取完毕
。5.
根据权利要求1所述的一种快速读取大文件内容方法,其特征在...

【专利技术属性】
技术研发人员:龙波扬徐斌董建军周雨何怀兵胡亚林郭莉张鑫
申请(专利权)人:武汉大数据产业发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1