一种配置文件的解析方法、存储介质、电子设备及系统

文档序号:1490580 发布日期:2020-02-04 浏览:19次 >En<

阅读说明:本技术 一种配置文件的解析方法、存储介质、电子设备及系统 (Configuration file analysis method, storage medium, electronic device and system ) 是由 张磊 于 2018-07-05 设计创作,主要内容包括:本发明公开了一种配置文件的解析方法、存储介质、电子设备及系统,涉及数据解析领域,该方法包括以下步骤:S1:获取需要解析的配置文件,并复制配置文件获得临时文件;S2:获取临时文件的首行位置和尾行位置的标签,若首行位置和尾行位置为无效标签,则删除无效标签,若首行位置和尾行位置为有效标签,则将有效标签对应的配置信息保存至内存加载文件,并删除有效标签及对应的配置信息;S3:重复步骤S2,直至临时文件为空,完成配置文件的解析。本发明对配置文件进行拷贝,获得导入内存进行解析的临时文件,并采用从首尾同时解析并及时删除的方式对临时文件进行解析,获取其中的配置信息,此解析方式能够提高工作效率,减轻内存负担。(The invention discloses a method, a storage medium, electronic equipment and a system for analyzing a configuration file, which relate to the field of data analysis, and comprise the following steps: s1: acquiring a configuration file to be analyzed, and copying the configuration file to obtain a temporary file; s2: acquiring tags of a head line position and a tail line position of the temporary file, deleting the invalid tags if the head line position and the tail line position are invalid tags, storing configuration information corresponding to the valid tags into a memory loading file if the head line position and the tail line position are valid tags, and deleting the valid tags and the corresponding configuration information; s3: and repeating the step S2 until the temporary file is empty, and completing the analysis of the configuration file. The invention copies the configuration file to obtain the temporary file which is imported into the memory for analysis, and analyzes the temporary file by adopting a mode of simultaneously analyzing from head to tail and deleting in time to obtain the configuration information in the temporary file.)

一种配置文件的解析方法、存储介质、电子设备及系统

技术领域

本发明涉及数据解析领域,具体涉及一种配置文件的解析方法、存储介质、电子设备及系统。

背景技术

传统方案中配置文件通常是XML格式的文件,解析XML的配置文件通常都是加载整个XML配置到内存中然后进行解析;

随着直播的发展,观看直播的人越来越多,直播涉及的内容越来越广泛,直播平台需要处理的数据逐渐变复杂,这样就导致在继续按照传统解析方法进行处理时,由于加载了整个信息到内存中会导致内存的数据暴增,当内存不足时,由于内存负担较大,会出现失败等问题,对日常数据解析工作带来诸多不便。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种配置文件的解析方法,能够提高工作效率,减轻内存负担。

为达到以上目的,本发明采取的技术方案是:

第一方面,本发明提供一种配置文件的解析方法,其包括以下步骤:

S1:获取需要解析的配置文件,并复制配置文件获得临时文件;

S2:获取临时文件的首行位置和尾行位置的标签,若首行位置和尾行位置为无效标签,则删除所述无效标签,若首行位置和尾行位置为有效标签,则将有效标签对应的配置信息保存至内存加载文件,并删除有效标签及对应的配置信息;

S3:重复步骤S2,直至临时文件为空,完成配置文件的解析。

在上述技术方案的基础上,获取临时文件的首行位置和尾行位置的标签包括以下具体步骤:

定位临时文件的首行数据,逐行识别临时文件内的换行符,若该行不存在换行符,则该行为临时文件的尾行数据,进而获得临时文件的首行位置、尾行位置以及总行数;

读取临时文件的首行数据以及尾行数据,获得临时文件的首行位置和尾行位置的标签。

在上述技术方案的基础上,获取临时文件的首行位置和尾行位置的标签包括以下具体步骤:

通过调用FileInputStream mFileInputStream=new FileInputStream(targetFile)将临时文件转化为文件流;

调用mBufferedReader.readLine()方法获取到所述文件流中的首行数据;

调用targetFile.length方法来获取到所述文件流的长度信息;

创建指针,指向所述文件流的首行,利用指针逐行向前判断是否存在换行符,直至不存在换行符,确定尾行位置。

在上述技术方案的基础上,将有效标签对应的配置信息保存至内存加载文件的操作,包括以下步骤:

将首行位置的有效标签对应的配置信息保存到第一内存加载子文件;

将尾行位置的有效标签对应的配置信息保存到第二内存加载子文件;

所述内存加载文件至少包括第一内存加载子文件以及第二内存加载子文件。

在上述技术方案的基础上,所述步骤S1具体包括:

S11:获取需要解析的配置文件,并识别配置文件的大小;

S12:设置缓存单元,将配置文件分割为N个小于缓存单元的文件单元,并通过缓存单元逐个将文件单元组合成临时文件,其中N为大于0的整数。

在上述技术方案的基础上,在步骤S1中,所述方法还包括:

将配置文件转变成文件对象srcFile;

创建一临时文件,将临时文件转换为文件对象targetFile;

通过调用FileInputStream srcFileInputStream=new FileInputStream(srcFile),将文件对象srcFile转换成输入流对象srcFileInputStream;

通过调用FileOutputStream targetFileOutputStream=new FileOutputStream(targetFile),将文件对象targetFile转换成输出流对象targetFileOutputStream;

将所述输入流对象srcFileInputStream的数据拷贝给所述输出流对象targetFileOutputStream。

在上述技术方案的基础上,所述将所述输入流对象srcFileInputStream的数据拷贝给所述输出流对象targetFileOutputStream的操作,包括以下步骤:

定义一个缓存区单元byteBuffer;

通过调用srcFileInputStream.read(byteBuffer)函数将所述输入流对象srcFileInputStream中的内容读取不大于缓存区单元byteBuffer数据大小的数据到缓存区单元byteBuffer中,然后通过调用targetFileOutputStream.write(byteBuffer),把缓存区单元byteBuffer中的内容写入到所述输出流对象targetFileOutputStream中,循环上述流程直到所述输入流对象srcFileInputStream的数据全部写入到所述输出流对象targetFileOutputStream中。

第二方面,本发明还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例中的方法。

第三方面,本发明还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例中的方法。

第四方面,本发明还公开一种配置文件的解析系统,其包括:

临时文件获取单元,用于获取需要解析的配置文件,并复制配置文件获得临时文件;

临时文件分析单元,用于获取临时文件的首行位置和尾行位置的标签,若首行位置和尾行位置为无效标签,则删除所述无效标签,若首行位置和尾行位置为有效标签,则将有效标签对应的配置信息保存至内存加载文件,并删除有效标签及对应的配置信息;

递归调用单元,用于多次使用临时文件分析单元对临时文件,直至临时文件为空,完成配置文件的解析。

与现有技术相比,本发明的优点在于:

本发明对配置文件进行拷贝,获得导入内存进行解析的临时文件,并采用从首尾同时解析并及时删除的方式对临时文件进行解析,获取其中的配置信息,此解析方式能够提高工作效率,减轻内存负担。

附图说明

图1为本发明一种配置文件的解析方法的流程图;

图2为本发明一种配置文件的解析方法的步骤S1的流程图;

图3为本发明一种配置文件的解析系统的结构框图。

图中:1、临时文件获取单元;2、临时文件分析单元;3、递归调用单元;

具体实施方式

术语解释:

FileInputStream srcFileInputStream=new FileInputStream():创建输入流对象srcFileInputStream;

FileOutputStream targetFileOutputStream=new FileOutputStream():创建输出流对象targetFileOutputStream;

srcFileInputStream.read():读取输入流对象srcFileInputStream的数据;

targetFileOutputStream.write():将数据写入输出流对象targetFileOutputStream;

FileInputStream mFileInputStream=new FileInputStream():创建文件流mFileInputStream;

mBufferedReader.readLine():读取文本行;

targetFile.length:获得targetFile的文件长度。

以下结合附图对本发明的实施例作进一步详细说明。

参见图1所示,本发明实施例提供一种配置文件的方法、存储介质、电子设备及系统,对配置文件进行拷贝,获得导入内存进行解析的临时文件,并采用从首尾同时解析并及时删除的方式对临时文件进行解析,获取其中的配置信息,此解析方式能够提高工作效率,减轻内存负担。

为达到上述技术效果,本申请的总体思路如下:

一种配置文件的解析方法,其包括以下步骤:

S1:获取需要解析的配置文件,并复制配置文件获得临时文件;

S2:获取临时文件的首行位置和尾行位置的标签,若首行位置和尾行位置为无效标签,则删除无效标签,若首行位置和尾行位置为有效标签,则将有效标签对应的配置信息保存至内存加载文件,并删除有效标签及对应的配置信息;

S3:重复步骤S2,直至临时文件为空,完成配置文件的解析。

本发明对配置文件进行拷贝,获得导入内存进行解析的临时文件,并采用从首尾同时解析并及时删除的方式对临时文件进行解析,获取其中的配置信息,此解析方式能够提高工作效率,减轻内存负担。

实施例一

参见图1以及图2所示,本发明实施例提供一种配置文件的解析方法,包括以下步骤:

在步骤S1中,将需要解析的配置文件复制获得临时文件;

具体的,所述步骤S1具体包括:

S11:获取需要解析的配置文件,并识别配置文件的大小;

S12:设置缓存单元,将配置文件分割为N个小于缓存单元的文件单元,并通过缓存单元逐个将文件单元组合成临时文件,其中N为大于0的整数。

作为一个可选的实施方式,在步骤S1中,该步骤具体实现方式包括:

将配置文件转变成文件对象srcFile;

创建一临时文件,将临时文件转换为文件对象targetFile;

通过调用FileInputStream srcFileInputStream=new FileInputStream(srcFile),将文件对象srcFile转换成输入流对象srcFileInputStream;

通过调用FileOutputStream targetFileOutputStream=new FileOutputStream(targetFile),将文件对象targetFile转换成输出流对象targetFileOutputStream;

将所述输入流对象srcFileInputStream的数据拷贝给所述输出流对象targetFileOutputStream。

具体的,所述将所述输入流对象srcFileInputStream的数据拷贝给所述输出流对象targetFileOutputStream的操作,包括以下步骤:

定义一个缓存区单元byteBuffer;

通过调用srcFileInputStream.read(byteBuffer)函数将所述输入流对象srcFileInputStream中的内容读取不大于缓存区单元byteBuffer数据大小的数据到缓存区单元byteBuffer中,然后通过调用targetFileOutputStream.write(byteBuffer),把缓存区单元byteBuffer中的内容写入到所述输出流对象targetFileOutputStream中,循环上述流程直到所述输入流对象srcFileInputStream的数据全部写入到所述输出流对象targetFileOutputStream中。

在步骤S2中,获取临时文件的首行位置和尾行位置的标签,若首行位置和尾行位置为无效标签,则删除所述无效标签,若首行位置和尾行位置为有效标签,则将有效标签对应的配置信息保存至内存加载文件,并删除有效标签及对应的配置信息;

作为一个可选的实施方式,获取临时文件的首行位置和尾行位置的标签包括以下具体步骤:

定位临时文件的首行数据,逐行识别临时文件内的换行符,若该行不存在换行符,则该行为临时文件的尾行数据,进而获得临时文件的首行位置、尾行位置以及总行数;

读取临时文件的首行数据以及尾行数据,获得临时文件的首行位置和尾行位置的标签。

作为一个可选的实施方式,获取临时文件的首行位置和尾行位置的标签包括以下具体步骤:

通过调用FileInputStream mFileInputStream=new FileInputStream(targetFile)将临时文件转化为文件流;

调用mBufferedReader.readLine()方法获取到所述文件流中的首行数据;

调用targetFile.length方法来获取到所述文件流的长度信息;

创建指针,指向所述文件流的首行,利用指针逐行向前判断是否存在换行符,直至不存在换行符,确定尾行位置。

具体的,将有效标签对应的配置信息保存至内存加载文件的操作,包括以下步骤:

将首行位置的有效标签对应的配置信息保存到第一内存加载子文件;

将尾行位置的有效标签对应的配置信息保存到第二内存加载子文件;

所述内存加载文件至少包括第一内存加载子文件以及第二内存加载子文件。

S3:重复步骤S2,直至临时文件为空,完成配置文件的解析。

本发明实施例对配置文件进行拷贝,获得导入内存进行解析的临时文件,并采用从首尾同时解析并及时删除的方式对临时文件进行解析,此解析方式能够提高工作效率,减轻内存负担。

针对本发明实施例中的配置文件解析的方法,以一个具体的配置文件例子,进行举例说明:

假设具体的配置文件的实例如下所示:

后续的解析描述是基于上述配置文件来进行开展的:

在步骤S1中,根据该配置文件得到临时文件;

在步骤S2中,获得首行“<configAll>”以及尾行“<configAll>”,由于首行以及尾行为无效标签,故而对当前的首行以及尾行进行删除;

从而获得删除后的临时文件如下:

Figure BDA0001721227210000092

重复步骤S2,获得当前首行的<config>以及尾行的</config>,由于当前首行以及尾行仍为无效标签,故而对当前的首行以及尾行进行删除;

从而获得删除后的临时文件如下:

Figure BDA0001721227210000101

继续重复步骤S2,获得当前首行的<name>zhangsan</name>以及尾行的<age>28</age>,进而获取配置信息“zhangsan”以及“28”,将“zhangsan”保存到第一内存加载子文件,将“28”保存到第二内存加载子文件,并将当前首行尾行进行删除;

从而获得删除后的临时文件如下:

Figure BDA0001721227210000102

继续重复步骤S2,获得当前首行的<age>18</age>以及尾行的<name>wangwu</name>,进而获取配置信息“zhangsan”以及“28”,将“18”保存到第一内存加载子文件,将“wangwu”保存到第二内存加载子文件,并将当前首行尾行进行删除;

从而获得删除后的临时文件如下:

</config>

<config>;

在重复步骤S2,直至直至临时文件为空,完成配置文件的解析。

将第一内存加载子文件内的“zhangsan”以及“18”,第二内存加载子文件内的“wangwu”、“28”组合成内存加载文件,并且对“zhangsan”以及“wangwu”标注其在临时文件中的标签,即name,对“18”以及“28”标注其在临时文件中的标签,即age;

在具体实施时,设置age信息标记以及name信息标记,并分别标记为markAge1以及markAge2,markName1以及markName2,markAge1与markName1进行对应,markAge2与markName2进行对应;

其中markAge1存储“18”,markName1存储“zhangsan”,markAge2存储“28”,markName2存储“wangwu”。

基于同一发明构思,本申请提供了实施例一对应的一种配置文件的解析系统,详见实施例二。

实施例二

如图3所示,本发明第四实施例还提供一种配置文件的解析系统,其包括:

临时文件获取单元1,用于获取需要解析的配置文件,并复制配置文件获得临时文件;

临时文件分析单元2,用于获取临时文件的首行位置和尾行位置的标签,若首行位置和尾行位置为无效标签,则删除所述无效标签,若首行位置和尾行位置为有效标签,则将有效标签对应的配置信息保存至内存加载文件,并删除有效标签及对应的配置信息;

递归调用单元3,用于多次使用临时文件分析单元对临时文件进行分析,直至临时文件为空,完成配置文件的解析。

具体的,临时文件获取单元1的具体工作流程包括:

获取需要解析的配置文件,并识别配置文件的大小;

设置缓存单元,将配置文件分割为N个小于缓存单元的文件单元,并通过缓存单元逐个将文件单元组合成临时文件,其中N为大于0的整数。

作为一个可选的实施方式,临时文件获取单元在工作时,具体实现方式包括:

将配置文件转变成文件对象srcFile;

创建一临时文件,将临时文件转换为文件对象targetFile;

通过调用FileInputStream srcFileInputStream=new FileInputStream(srcFile),将文件对象srcFile转换成输入流对象srcFileInputStream;

通过调用FileOutputStream targetFileOutputStream=new FileOutputStream(targetFile),将文件对象targetFile转换成输出流对象targetFileOutputStream;

将所述输入流对象srcFileInputStream的数据拷贝给所述输出流对象targetFileOutputStream。

具体的,所述将所述输入流对象srcFileInputStream的数据拷贝给所述输出流对象targetFileOutputStream的操作,包括以下步骤:

定义一个缓存区单元byteBuffer;

通过调用srcFileInputStream.read(byteBuffer)函数将所述输入流对象srcFileInputStream中的内容读取不大于缓存区单元byteBuffer数据大小的数据到缓存区单元byteBuffer中,然后通过调用targetFileOutputStream.write(byteBuffer),把缓存区单元byteBuffer中的内容写入到所述输出流对象targetFileOutputStream中,循环上述流程直到所述输入流对象srcFileInputStream的数据全部写入到所述输出流对象targetFileOutputStream中。

临时文件分析单元2在工作时,获取临时文件的首行位置和尾行位置的标签,若首行位置和尾行位置为无效标签,则删除所述无效标签,若首行位置和尾行位置为有效标签,则将有效标签对应的配置信息保存至内存加载文件,并删除有效标签及对应的配置信息。

作为一个可选的实施方式,临时文件分析单元在获取临时文件的首行位置和尾行位置的标签的操作时,包括以下具体步骤:

定位临时文件的首行数据,逐行识别临时文件内的换行符,若该行不存在换行符,则该行为临时文件的尾行数据,进而获得临时文件的首行位置、尾行位置以及总行数;

读取临时文件的首行数据以及尾行数据,获得临时文件的首行位置和尾行位置的标签。

作为一个可选的实施方式,临时文件分析单元在获取临时文件的首行位置和尾行位置的标签是,具体实施方式可以包括以下具体步骤:

通过调用FileInputStream mFileInputStream=new FileInputStream(targetFile)将临时文件转化为文件流;

调用mBufferedReader.readLine()方法获取到所述文件流中的首行数据;

调用targetFile.length方法来获取到所述文件流的长度信息;

创建指针,指向所述文件流的首行,利用指针逐行向前判断是否存在换行符,直至不存在换行符,确定尾行位置。

具体的,将有效标签对应的配置信息保存至内存加载文件的操作,包括以下步骤:

将首行位置的有效标签对应的配置信息保存到第一内存加载子文件;

将尾行位置的有效标签对应的配置信息保存到第二内存加载子文件;

所述内存加载文件至少包括第一内存加载子文件以及第二内存加载子文件。

本发明实施例对配置文件进行拷贝,获得导入内存进行解析的临时文件,并采用从首尾同时解析并及时删除的方式对临时文件进行解析,此解析方式能够提高工作效率,减轻内存负担

基于同一发明构思,本申请提供了实施例一对应的存储介质的实施例,详见实施例三

实施例三

本发明第三实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一实施例中的所有方法步骤或部分方法步骤。

本发明实现上述第一实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

基于同一发明构思,本申请提供了实施例一对应的电子设备的实施例,详见实施例四

实施例四

本发明第四实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现第一实施例中的所有方法步骤或部分方法步骤。

所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种文件格式转换方法、装置、计算机设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!