一种条目化数据压缩打包方法,包括打包过程与数据读取过程,打包文件包括文件头以及与所述文件头相连的两个相互独立的索引链和数据链。所述索引链存储索引数据节点信息,所述数据链存储数据存储节点信息。所述索引链包括索引数据块1、索引数据块2、……索引数据块n(n≥2),每一索引数据块对应一个索引数据节点;所述数据链包括数据存储块1、数据存储块2、……数据存储块n(n≥2),每一数据存储块对应一个数据存储节点;所述索引数据块与数据存储块一一映射。所述每一索引数据块结尾处存储有下一索引节点地址,相应的,所述每一数据存储块结尾处存储有下一数据节点地址。
【技术实现步骤摘要】
本专利技术涉及应用程序开发领域,具体地说,涉及一种应用程序条目化数据压缩打包方法。
技术介绍
数据打包是程序应用发布中经常需要使用的一种技术,在应用开发中,经常需要大量使用各种数据文件,为了使得应用发布简单清洁,也为了对应用数据进行保护,经常需要使用进行数据打包。现在常用的数据打包技术中,没有很好的解决数据索引存储的扩展问题,而且读取数据时,需要依次读取数据,读取量大,存在开发时不太方便更换应用数据,也难以同时应用多个打包数据文件能问题,且文件压缩率低,数据安全无法得到有效保障。
技术实现思路
为了解决上述问题,本专利技术提供一种能够实现数据连续存储和索引扩展方便的条目化数据压缩打包方法。本专利技术的一种条目化数据压缩打包方法,包括打包过程与数据读取过程;其中,所述打包过程如下步骤:S1、初始化需要打包的数据,建立文件头;S2、从初始化的数据中获取数据索引条目和需要打包的数据;S3、紧跟文件头,根据从初始化数据中获得的数据索引条目创建索引数据节点信息,预设索引数据节点尺寸,索引数据节点信息存储为索引数据块;同时,根据从初始化数据中获得的需要打包的数据创建数据存储节点信息,预设数据存储节点尺寸,数据存储节点包含区块化数据,并存储为数据存储块;索引数据节点和数据存储节点一一映射;S4、分别填充索引数据节点和数据存储节点,直到大于了预设的节点尺寸;索引数据节点填充的是数据索引条目,数据存储节点填充的是其对应的索引条目所索引的数据;S5、根据创建的数据存储节点信息,将每一节点数据压缩加密后写入打包数据文件中,创建新的数据结点,继续写入数据,直至数据写入完毕。此外,所述数据读取过程包括如下步骤:D1、读取打包数据文件头;D2、读取所有索引条目信息,并存储于内存中;D3、当读取指定条目时,在所有索引条目信息中查询该条目;如果索引信息中不存在该条目,则在指定的文件中查找以该条目为名称的文件,并返回文件中的数据;如果索引条目信息中存在该条目,则读取索引信息,找到索引信息映射的数据存储节点,转到步骤D4;D4、读出索引信息映射的数据存储节点中包含的数据区块中的数据,进行解密、解压处理,并根据指定条目偏移到条目索引的数据节点所指定的位置,读出指定长度的数据,然后返回读取到的数据。在对数据打包过程中,打包文件包括文件头以及与所述文件头相连的两个相互独立的索引链和数据链。所述索引链存储索引数据节点信息,所述数据链存储数据存储节点信息。所述索引链包括索引数据块1、索引数据块2、……索引数据块n(n≥2),每一索引数据块对应一个索引数据节点;所述数据链包括数据存储块1、数据存储块2、……数据存储块n(n≥2),每一数据存储块对应一个数据存储节点;所述索引数据块与数据存储块一一映射。所述每一索引数据块结尾处存储有下一索引节点地址,相应的,所述每一数据存储块结尾处存储有下一数据节点地址。所述数据链中的数据存储块将需要打包的数据进行连续存储,当需要增加打包数据时,直接在数据存储块尾部按照预设的数据节点尺寸依次添加数据,并修改上一条数据存储块尾部信息,使其指定到新增的数据节点地址。本专利技术解决了现有技术下,打包数据读取量大,不方便连续存储以及索引扩展的问题。采用本专利技术的条目化数据压缩打包方法,接口程序可以同时挂载多个打包数据文件,无需读取所有数据,只需要读取打包数据对应的索引条目,如果在索引条目中找不到指定的条目时,再在相应的文件中查找对应文件;遇到需要新增打包数据时,只需要在索引数据块和数据存储块的尾部进行增加和修改,实现连续递增存储;这一特性大大方便了应用的调试开发,只需要在程序发布时将所有数据文件打包到同一个数据包中。同时,采用本专利技术的条目化数据压缩打包方法生成打包数据文件时,将文件以两个独立的存储链分别存储条目索引和区块化数据,针对每一个数据存储块进行压缩加密,大大提高压缩速率,减小文件尺寸,增加文件压缩比,这边不仅可以大大提高指定条目的读取数据,也可以极大提高数据压缩率。同时支持对索引和数据的双重加密,有效保障数据安全。附图说明图1是本专利技术的条目化数据压缩打包方法的打包数据存储方式示意图。具体实施方式为了更好的理解本专利技术,下面结合附图详细说明本专利技术。本专利技术的一种条目化数据压缩打包方法,包括打包过程与数据读取过程;其中,所述打包过程如下步骤:S1、初始化需要打包的数据,建立文件头;S2、从初始化的数据中获取数据索引条目和需要打包的数据;S3、紧跟文件头,根据从初始化数据中获得的数据索引条目创建索引数据节点信息,预设索引数据节点尺寸,索引数据节点信息存储为索引数据块;同时,根据从初始化数据中获得的需要打包的数据创建数据存储节点信息,预设数据存储节点尺寸,数据存储节点包含区块化数据,并存储为数据存储块;索引数据节点和数据存储节点一一映射;S4、分别填充索引数据节点和数据存储节点,直到大于了预设的节点尺寸;索引数据节点填充的是数据索引条目,数据存储节点填充的是其对应的索引条目所索引的数据;S5、根据创建的数据存储节点信息,将每一节点数据压缩加密后写入打包数据文件中,创建新的数据结点,继续写入数据,直至数据写入完毕。此外,所述数据读取过程包括如下步骤:D1、读取打包数据文件头;D2、读取所有索引条目信息,并存储于内存中;D3、当读取指定条目时,在所有索引条目信息中查询该条目;如果索引信息中不存在该条目,则在指定的文件中查找以该条目为名称的文件,并返回文件中的数据;如果索引条目信息中存在该条目,则读取索引信息,找到索引信息映射的数据存储节点,转到步骤D4;D4、读出索引信息映射的数据存储节点中包含的数据区块中的数据,进行解密、解压处理,并根据指定条目偏移到条目索引的数据节点所指定的位置,读出指定长度的数据,然后返回读取到的数据。如图1所示,在对数据打包过程中,打包文件包括文件头以及与所述文件头相连的两个相互独立的索引链和数据链。所述索引链存储索引数据节点信息,所述数据链存储数据存储节点信息。所述索引链包括索引数据块1、索引数据块2、……索引数据块n(n≥2),每一索引数据块对应一个索引数据节点;所述数据链包括数据存储块1、数据存储块2、……数据存储块n(n≥2),每一数据存储块对应一个数据存储节点;所述索引数据块与数据存储块一一映射。所述每一索引数据块结尾处存储有下一索引节点地址,相应的,所述每一数据存储块结尾处存储有下一数据节点地址。所述数据链中的数据存储块将需要打包的数据进行连续存储,当需要增加打包数据时,直接在数据存储块尾部按照预设的数据节点尺寸依次添加数据,并修改上一条数据存储块尾部信息,使其指定到新增的数据节点地址。本专利技术解决了现有技术下,打包数据读取量大,不方便连续存储以及索引扩展的问题。采用本专利技术的条目化数据压缩打包方法,接口程序可以同时挂载多个打包数据文件,无需读取所有数据,只需要读取打包数据对应的索引条目,如果在索引条目中找不到指定的条目时,再在相应的文件中查找对应文件;遇到需要新增打包数据时,只需要在索引数据块和数据存储块的尾部进行增加和修改,实现连续递增存储;这一特性大大方便了应用的调试开发,只需要在程序发布时将所有数据文件打包到同一个数据包中。同时,采用本专利技术的条目化数据压缩打包方法生成打包数据文件时,将文件以两个独本文档来自技高网...
【技术保护点】
一种条目化数据压缩打包方法,其特征在于,所述条目化数据压缩打包方法包括打包过程与数据读取过程;所述打包过程如下步骤:S1、初始化需要打包的数据,建立文件头;S2、从初始化的数据中获取数据索引条目和需要打包的数据;S3、紧跟文件头,根据从初始化数据中获得的数据索引条目创建索引数据节点信息,预设索引数据节点尺寸,索引数据节点信息存储为索引数据块;同时,根据从初始化数据中获得的需要打包的数据创建数据存储节点信息,预设数据存储节点尺寸,数据存储节点包含区块化数据,并存储为数据存储块;索引数据节点和数据存储节点一一映射;S4、分别填充索引数据节点和数据存储节点,直到大于了预设的节点尺寸;索引数据节点填充的是数据索引条目,数据存储节点填充的是其对应的索引条目所索引的数据;S5、根据创建的数据存储节点信息,将每一节点数据压缩加密后写入打包数据文件中,创建新的数据结点,继续写入数据,直至数据写入完毕;所述数据读取过程包括如下步骤:D1、读取打包数据文件头;D2、读取所有索引条目信息,并存储于内存中;D3、当读取指定条目时,在所有索引条目信息中查询该条目;如果索引信息中不存在该条目,则在指定的文件中查找以该条目为名称的文件,并返回文件中的数据;如果索引条目信息中存在该条目,则读取索引信息,找到索引信息映射的数据存储节点,转到步骤D4;D4、读出索引信息映射的数据存储节点中包含的数据区块中的数据,进行解密、解压处理,并根据指定条目偏移到条目索引的数据节点所指定的位置,读出指定长度的数据,然后返回读取到的数据。...
【技术特征摘要】
1.一种条目化数据压缩打包方法,其特征在于,所述条目化数据压缩打包方法包括打包过程与数据读取过程;所述打包过程如下步骤:S1、初始化需要打包的数据,建立文件头;S2、从初始化的数据中获取数据索引条目和需要打包的数据;S3、紧跟文件头,根据从初始化数据中获得的数据索引条目创建索引数据节点信息,预设索引数据节点尺寸,索引数据节点信息存储为索引数据块;同时,根据从初始化数据中获得的需要打包的数据创建数据存储节点信息,预设数据存储节点尺寸,数据存储节点包含区块化数据,并存储为数据存储块;索引数据节点和数据存储节点一一映射;S4、分别填充索引数据节点和数据存储节点,直到大于了预设的节点尺寸;索引数据节点填充的是数据索引条目,数据存储节点填充的是其对应的索引条目所索引的数据;S5、根据创建的数据存储节点信息,将每一节点数据压缩加密后写入打包数据文件中,创建新的数据结点,继续写入数据,直至数据写入完毕;所述数据读取过程包括如下步骤:D1、读取打包数据文件头;D2、读取所有索引条目信息,并存储于内存中;D3、当读取指定条目时,在所有索引条目信息中查询该条目;如果索引信息中不存在该条目,则在指定的文件中查找以该条目为名称的文件,并返回文件中的数据;如果索引条目信息中存在该条目,则读取索引信息,找到索引信息映射的数据存储节点,转到步骤D4;D4、读出索引信息映射的数据存储节点中包含的...
【专利技术属性】
技术研发人员:沈育龙,
申请(专利权)人:成都君乾信息技术有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。