一种异构数据融合文件中提取原始数据的方法与流程

文档序号:17880655发布日期:2019-06-13 10:33阅读:186来源:国知局
一种异构数据融合文件中提取原始数据的方法与流程

本发明主要涉及到存储技术领域,特指一种从异构数据融合文件中提取原始数据的方法。



背景技术:

随着IT技术的迅猛发展,文件系统的不断完善,应用领域涵盖的范围也越来越广,在进行数据传输或者传递时,一个文件中可能需要融合多种不同结构的数据。而在融合过程中,该文件的原始数据往往不会提供相应的特征以便被提取出来。例如,在文件传输过程中,有时需要在不同阶段将该文件的数字摘要添加到文件中的任何可能的位置,有时还需要将其他的标志数据添加到该文件中的任何可能的位置,为此就需要有一个有效的方法能够将文件的原始数据提取出来,而不违背文件原始数据的用途愿意。

目前,现有的文件系统的文件中,均采用同一种结构数据,对于异构数据融合而成的文件,需要提供每个异构数据的起始存储位置与长度及相关结构。如果原始文件的数据体未提供相应的特征的话,提取文件原始数据的过程非常复杂,效率低下。



技术实现要素:

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、通用性强、可以简化操作、提高模块设计效率的异构数据融合文件中提取原始数据的方法。

为解决上述技术问题,本发明采用以下技术方案:

一种异构数据融合文件中提取原始数据的方法,其流程为:

S1:获取异构数据融合体文件及文件长度;

S2:将异构数据融合文件以二进制方式读取并存储到文件内容字节数组中,假设文件内容字节数组为IntrojectedFileArray;申请一个字节数组,假设为DataFlagArray,长度为Length,初始化数组使得每个数组元素为n,n为小于256大于1的数字;申请原文件内容字节数组,假设为:FileDataArray;

S3:获取各种异构数据体所存放的文件名、起始位置StartPosition、长度DataLength;

S4:对每一个异构数据体进行筛选;判断异构数据体是否在异构数据融合文件内,如果在,就在字节数组DataFlagArray中设置从标号为StartPosition到StartPosition+DataLength的元素数据为m,m为区别于n的大于等于零、小于等于255的数字;执行完最后一个异构数据体后,转入下一个步骤;

S5:逐一获取字节数组DataFlagArray中每一个元素DataFlag,判断DataFlag的数据是否等于n,如果等于n,则赋值给申请原文件内容字节数组中FileDataArray的对应位置;直至完成所有元素DataFlag的判断;

S6:成功获取原始数据,输出到外部接口。

作为本发明的进一步改进:所述步骤S4的具体流程为:

S401:设I=1,即从第一个异构数据体开始;

S402:获取第I个异构数据体的存储文件名、起始位置StartPosition、长度DataLength;

S403:判断异构数据体I是否存放在该融合文件中,如果是,就在字节数组DataFlagArray执行操作,否则进入下一步;

S404:设置i=i+1,执行S402。

作为本发明的进一步改进:所述步骤S5的具体流程为:

S501:假设字节数组DataFlagArray中的元素为DataFlag,第I个元素为DataFlag_i;假设文件内容字节数组IntrojectedFileArray中第I个元素为IntrojectedFlag_i;设I=1;获取DataFlag_i为n的元素个数,假设为FileDataLength;申请原文件内容字节数组,长度为FileDataLength,假设为FileDataArray中第j个元素为FileData_j;设定j=0;

S502:获取DataFlag_i;

S503:判断DataFlag_i的数据是否等于n,如果等于n,进入下一步,否则转入S506;

S504:设置FileData_j=IntrojectedFlag_i;

S505:设置J=j+1;

S506:判断i是否等于FileDataLength,如果不相等,进入下一步,否则完成操作;

S507:设置i=i+1;转入S502。

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

1、本发明的异构数据融合文件中原始数据提取方法在应用后,无需原始数据文件创建者提供任何相关的数据体属性,添加异构数据体者就可以准确无误地还原原始数据,从而大大降低了原始数据文件创建者与异构数据体添加者之间的关联耦合性,提高了模块设计的效率。

2、本发明的异构数据融合文件中原始数据提取方法在应用后,在进行文件的传递或者传输过程中,每个添加异构数据层面中,任何添加异构数据体者,只需要提供所添加异构数据体存放文件的文件名、异构数据体存放起始位置及长度,后一层面的数据获取者均可以顺利还原前一个层面的原始数据。依次类推,如果所有添加异构数据体者均提供了文件名、起始位置和长度,那么任何人均可以获取文件中的原始数据。

附图说明

图1是本发明在具体应用实例中的流程示意图。

图2是本发明在具体应用实例中的逻辑框图。

具体实施方式

以下将结合说明书附图和具体实施例对本发明做进一步详细说明。

如图1和图2所示,本发明的一种异构数据融合文件中提取原始数据的方法,其流程为:

S1:获取异构数据融合体文件及文件长度;假设长度为IntrojectedFilelength。

S2:将异构数据融合文件以二进制方式读取并存储到文件内容字节数组中,假设文件内容字节数组为IntrojectedFileArray;申请一个字节数组,假设为DataFlagArray,长度为Length,初始化数组使得每个数组元素为n,n为小于256大于1的数字。申请原文件内容字节数组,假设为:FileDataArray;

S3:获取各种异构数据体所存放的文件名、起始位置StartPosition、长度DataLength;假设有I个异构数据体;

S4:对每一个异构数据体进行筛选;判断异构数据体是否在异构数据融合文件内,如果在,就在字节数组DataFlagArray中设置从标号为StartPosition到StartPosition+DataLength的元素数据为m,m为区别于n的大于等于零、小于等于255的数字;执行完最后一个异构数据体后,转入下一个步骤;

S5:逐一获取字节数组DataFlagArray中每一个元素DataFlag,判断DataFlag的数据是否等于n,如果等于n,则赋值给申请原文件内容字节数组中FileDataArray的对应位置;直至完成所有元素DataFlag的判断;

S6:成功获取原始数据,输出到外部接口。

本发明在具体应用时,步骤S4的具体流程为:

S401:设I=1,即从第一个异构数据体开始;

S402:获取第I个异构数据体的存储文件名、起始位置StartPosition、长度DataLength;

S403:判断异构数据体I是否存放在该融合文件中,如果是,就在字节数组DataFlagArray执行操作,否则进入下一步;

S404:设置i=i+1,执行S402。

本发明在具体应用时,步骤S5的具体流程为:

S501:假设字节数组DataFlagArray中的元素为DataFlag,第I个元素为DataFlag_i;假设文件内容字节数组IntrojectedFileArray中第I个元素为IntrojectedFlag_i;设I=1;获取DataFlag_i为n的元素个数,假设为FileDataLength;申请原文件内容字节数组,长度为FileDataLength,假设为FileDataArray中第j个元素为FileData_j;设定j=0;

S502:获取DataFlag_i;

S503:判断DataFlag_i的数据是否等于n,如果等于n,进入下一步,否则转入S506;

S504:设置FileData_j=IntrojectedFlag_i;

S505:设置J=j+1;

S506:判断i是否等于FileDataLength,如果不相等,进入下一步,否则完成操作;

S507:设置i=i+1;转入S502。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1