文件储存方法和文件修改方法转让专利

申请号 : CN201410480255.2

文献号 : CN104268091B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 盛杰莫绍强刘江林

申请人 : 盛杰

摘要 :

本发明涉及数据储存领域,具体而言,涉及文件储存方法和文件修改方法。该文件储存方法包括至少包括如下步骤:获取待储存数据和至少一个待复用数据;使用所述待复用数据的第一映射标识替代所述待储存数据中与所述待复用数据相同的数据,以生成已替代数据,所述第一映射标识用于调取所述待复用数据;将所述已替代数据储存到预设的储存位置。通过使用待复用数据的第一映射标识替代了待储存数据中,与待复用数据相同的数据部分,从而使储存的时候,不再需要储存与待复用数据相同的部分,而是储存第一映射标识,由于第一映射标识所占据的储存空间远小于待复用数据,从而,将已替代数据储存到预设的储存位置后,节约了储存空间。

权利要求 :

1.文件储存方法,其特征在于,包括:

获取待储存数据和至少一个待复用数据;

使用所述待复用数据的第一映射标识替代所述待储存数据中与所述待复用数据相同的数据,以生成已替代数据,所述第一映射标识用于调取所述待复用数据;

将所述已替代数据储存到预设的储存位置;

还包括:

将预先获取的已储存数据进行分段,以形成多个待复用数据;

分别对每个所述待复用数据进行标号,以确定所述第一映射标识;

还包括:获取多个待复用子数据和用于调取所述待复用子数据的第二映射标识,一个所述第二映射标识用于调取一个所述待复用子数据;

按照预先获取的排列顺序将多个所述第二映射标识进行组合,以生成所述第一映射标识;

按照预先获取的排列顺序将多个待复用子数据进行组合,以生成所述待复用数据。

2.根据权利要求1所述的文件储存方法,其特征在于,还包括:根据预先获取的待储存数据的大小,和/或类型,确定所述待复用数据,和/或所述待复用子数据的大小。

3.根据权利要求1所述的文件储存方法,其特征在于,还包括:在预先获取的已储存数据中查找表达预定的含义的基本数据段;

将所述基本数据段的储存地址作为第一映射标识,或将所述基本数据段的储存地址作为第二映射标识。

4.根据权利要求3所述的文件储存方法,其特征在于,所述在预先获取的已储存数据中查找表达预定的含义的基本数据段包括:确定相对应的两个换行符之间所记录的数据为基本数据段;

所述两个相对应的换行符之间没有其他换行符;

所述基本数据段是表达指定含义的基本单位。

5.根据权利要求1所述的文件储存方法,其特征在于,还包括:在所述待储存数据中查找是否存在与任意的所述待复用数据相同的数据;

若是,则使用所述待复用数据的第一映射标识替代所述待储存数据中与所述待复用数据相同的数据。

6.文件修改方法,基于权利要求1-5任一项所述的文件储存方法,其特征在于,还包括:根据预先获取的待修改数据的储存地址查找指定的待复用数据;

按照所述修改方法对所述待复用数据进行修改,以生成已修改复用数据;

将所述已修改复用数据储存到指定储存位置,以确定已修改复用数据的储存地址;

将已修改复用数据的储存地址和用于调取所述已修改复用数据的第一映射标识进行关联。

7.根据权利要求6所述的文件修改方法,其特征在于,若所述第一映射标识用于调取所述待复用数据至多个待储存文件中,且存在至少一个待储存文件中的待复用数据不需要修改,则在所述按照所述修改方法对所述待复用数据进行修改,以生成已修改复用数据前还包括:将所述待修改的待复用数据备份到备份储存位置;

使用所述待复用数据的第三映射标识替代所述待储存数据中与所述待复用数据相同的数据,以生成已替代数据,所述第三映射标识用于调取所述备份储存位置上的待复用数据。

8.根据权利要求7所述的文件修改方法,其特征在于,若所述第一映射标识用于调取所述待复用数据至多个待储存文件中,且需要使用多种修改方式对所述待复用数据进行修改,则所述根据预先获取的待修改数据的储存地址查找指定的待复用数据前还包括:对待修改的待复用数据进行多次备份,以生成多份待修改的复用数据;

所述按照所述修改方法对所述待复用数据进行修改,以生成已修改复用数据包括:分别按照不同的修改方法对每个待修改的复用数据进行修改,以生成多个已修改复用数据。

说明书 :

文件储存方法和文件修改方法

技术领域

[0001] 本发明涉及数据储存领域,具体而言,涉及文件储存方法和文件修改方法。

背景技术

[0002] 现代化社会中,随着自动化程度的提高,计算机已经成为了生产生活中不可获取的一个部分。使用计算机的前提便是对计算机进行编程和在计算机内部储存数量足够多的文件以及应用程序,以使其具有各种各样的功能。
[0003] 对计算机进行编程、储存文件,或者安装应用程序的过程,从本质上来看,都是将数据内容写入计算机的一个过程。以储存文件为例进行说明,传统的储存方式是将待储存的文件储存到预设的储存位置(某储存空间中),其中,预设的储存位置是通过多级限定的方式来指明的,如可以将某文件储存到C盘→A文件夹→B子文件夹中,这样通过多个层级的重复限定方式,使得某文件最终被储存到B子文件夹中,当然也可以说某文件是储存到A文件夹,或者C盘中。其中,C盘、A文件夹和B子文件夹可以认为是节点,C盘是祖先节点,A文件夹是父节点,B子文件夹是子节点,祖先节点(C盘)所对应的是一个范围较大的储存空间,A文件夹和B子文件夹分别是这个范围较大的储存空间的某一个部分,B子文件夹又是在A文件夹的从属文件夹。
[0004] 随着使用,发现了一个问题,就是文件储存重复,如同一个文件,或者一个文件中的某段代码会被重复使用。如123456789这段数据可能需要出现在A、B、C和D四个不同的文件中,传统的储存方式是将123456789分别在A、B、C和D的储存位置上均进行记录,这样便会造成文件重复储存的问题。如果把这一问题扩大,如有50MB的数据需要存储在不同的文件夹内,传统的储存方式便是在这两个文件夹中都存储这50MB的数据,但很明显,这样会造成数据的重复储存,一旦重复储存的次数,和/或重复储存的文件容量过大,则会严重的拖累系统的储存空间,同样也会导致系统的运行速度大大下降。
[0005] 综上,现有技术中,当某一段数据需要重复出现在不同的文件夹(节点)中的时候,处理方式是在每个文件夹(节点)所对应的储存位置上均进行相同的数据存储,这样会造成储存系统资源的浪费。

发明内容

[0006] 本发明的目的在于提供文件储存方法和文件修改方法,以解决上述的问题。
[0007] 在本发明的实施例中提供了文件储存方法,包括:
[0008] 获取待储存数据和至少一个待复用数据;
[0009] 使用待复用数据的第一映射标识替代待储存数据中与待复用数据相同的数据,以生成已替代数据,第一映射标识用于调取待复用数据;
[0010] 将已替代数据储存到预设的储存位置。
[0011] 优选的,还包括:
[0012] 将预先获取的已储存数据进行分段,以形成多个待复用数据;
[0013] 分别对每个待复用数据进行标号,以确定第一映射标识。
[0014] 优选的,还包括:获取多个待复用子数据和用于调取待复用子数据的第二映射标识,一个第二映射标识用于调取一个待复用子数据;
[0015] 按照预先获取的排列顺序将多个第二映射标识进行组合,以生成第一映射标识;
[0016] 按照预先获取的排列顺序将多个待复用子数据进行组合,以生成待复用数据。
[0017] 优选的,还包括:根据预先获取的待储存数据的大小,和/或类型,确定待复用数据,和/或待复用子数据的大小。
[0018] 优选的,还包括:在预先获取的已储存数据中查找表达预定的含义的基本数据段;
[0019] 将基本数据段的储存地址作为第一映射标识,或将基本数据段的储存地址作为第二映射标识。
[0020] 优选的,在预先获取的已储存数据中查找表达预定的含义的基本数据段包括:确定相对应的两个换行符之间所记录的数据为基本数据段;
[0021] 两个相对应的换行符之间没有其他换行符;
[0022] 基本数据段是表达指定含义的基本单位。
[0023] 优选的,还包括:在待储存数据中查找是否存在与任意的待复用数据相同的数据;
[0024] 若是,则使用待复用数据的第一映射标识替代待储存数据中与待复用数据相同的数据。
[0025] 本发明实施例还提供了文件修改方法,基于文件储存方法,还包括:
[0026] 根据预先获取的待修改数据的储存地址查找指定的待复用数据;
[0027] 按照修改方法对待复用数据进行修改,以生成已修改复用数据;
[0028] 将已修改复用数据储存到指定储存位置,以确定已修改复用数据的储存地址;
[0029] 将已修改复用数据的储存地址和用于调取已修改复用数据的第一映射标识进行关联。
[0030] 优选的,若第一映射标识用于调取待复用数据至多个待储存文件中,且存在至少一个待储存文件中的待复用数据不需要修改,
[0031] 则在按照修改方法对待复用数据进行修改,以生成已修改复用数据前还包括:
[0032] 将待修改的待复用数据备份到备份储存位置;
[0033] 使用待复用数据的第三映射标识替代待储存数据中与待复用数据相同的数据,以生成已替代数据,第三映射标识用于调取备份储存位置上的待复用数据。
[0034] 优选的,若第一映射标识用于调取待复用数据至多个待储存文件中,且需要使用多种修改方式对待复用数据进行修改,则根据预先获取的待修改数据的储存地址查找指定的待复用数据前还包括:
[0035] 对待修改的待复用数据进行多次备份,以生成多份待修改的复用数据;
[0036] 按照修改方法对待复用数据进行修改,以生成已修改复用数据包括:
[0037] 分别按照不同的修改方法对每个待修改的复用数据进行修改,以生成多个已修改复用数据。
[0038] 本发明实施例提供的文件储存方法,与现有技术中的在需要储存数据的时候,每个文件夹内的数据均是相互独立的,造成了相同数据被重复储存,浪费系统资源相比,其通过使用待复用数据的第一映射标识替代了待储存数据中,与待复用数据相同的数据部分,从而使储存的时候,不再需要储存与待复用数据相同的部分,而是储存第一映射标识,由于第一映射标识所占据的储存空间远小于待复用数据,从而,将已替代数据储存到预设的储存位置后,节约了储存空间,解决了现有技术中的不足。

附图说明

[0039] 图1示出了本发明实施例的文件储存方法的基本流程图;
[0040] 图2示出了相关技术中文件的储存方式;
[0041] 图3示出了本发明实施例的文件储存方法的一种文件储存方式示意图;
[0042] 图4示出了本发明实施例的文件储存方法的另一种文件储存方式示意图;
[0043] 图5示出了本发明实施例的文件储存方法的待复用数据与文件的逻辑关系示意图;
[0044] 图6示出了本发明实施例的文件储存方法的待复用数据、待复用子数据与文件的逻辑关系示意图;
[0045] 图7示出了本发明实施例的文件修改方法的流程示意图。

具体实施方式

[0046] 下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。
[0047] 本发明实施例1提供了文件储存方法,如图1所示,包括如下步骤:
[0048] S101,获取待储存数据和至少一个待复用数据;
[0049] S102,使用待复用数据的第一映射标识替代待储存数据中与待复用数据相同的数据,以生成已替代数据,第一映射标识用于调取待复用数据;
[0050] S103,将已替代数据储存到预设的储存位置。
[0051] 步骤S101中,待复用数据可以是指储存系统中已经存在的数据。由于大部分的数据均是具有一定的关联性的。比如写的某一段文章,编写的某一段代码,某一段视频,或者音频等等。在电脑中储存的文件夹中的文件,或者文件中的代码或多或少都会与其他的文件,或者代码有一定程度上的重合。但是,传统的储存系统中,如图2所示,某一个文件只能储存在一个文件夹下面,或者某一段数据只能存储在某一个指定区域,也就是每个储存位置是分开的,如图中的file1、file2和file3。当某文件,或某数据需要同时出现在不同的文件夹,或者文件中,则均是以复制的方式,将文件,或数据再次复制到指定的储存位置。这会对系统储存空间造成很大程度上的不必要占用。由此,可以通过引用“待复用数据”的方式,来减少数据的储存量。待复用数据可以是储存在计算机中指定位置上的,专门用来储存的数据,也可以是其他文件中,所截取的某一段代码,作为待复用数据。S101中,获取的待复用数据可以是多个,也可以是一个,当待复用数据是多个的时候,也就表明了待储存的文件可以有更多的选择,可能可以使用较多的待复用数据来替代实际的数据,这样可以进一步减小对系统储存空间的占用。
[0052] 步骤S102中,第一映射标识是与待复用数据相对应的。如果待复用数据是多个,那么第一映射标识也应是多个,待复用数据与第一映射标识是一对一的关系。第一映射标识用于调取待复用数据,是指在读取待储存数据的时候,通过读取第一映射标识来直接读取到与其对应的待复用数据。通过映射标识与数据项映射的关系来读取数据的方式已经较为普遍,在此,不再赘述。通常,第一映射标识可以是待复用数据的储存地址,待复用数据中的两个标识(如换行符中间所对应的数据作为待复用数据)。由此可以见第一映射标识所占据的储存空间,通常是远小于一端完整的数据的。如第一映射标识只有几K,待复用数据通常为几M,几G,甚至更多。由此可以见,通过使用第一映射标识来替代待复用数据能够大大降低系统储存空间的不必要占用。如图3所示,可以将文件中相互重叠的位置只储存一次,其他文件通过索引的方式来引用这部分重叠的文件,图4中所体现的是一个文件被另一个文件所包含的情况
[0053] 步骤S103中,需要将已经使用第一映射标识进行替代过的待储存数据进行存储。由于已经经过替代,所以占据的系统储存空间会大大减小。
[0054] 进一步,本发明所提供的文件储存方法还包括:
[0055] 将预先获取的已储存数据进行分段,以形成多个待复用数据;
[0056] 分别对每个待复用数据进行标号,以确定第一映射标识。
[0057] 也就是待复用数据可以是从已经储存的数据中产生的。如制作的某一个音频文件中,是经过几个现有的曲子进行合成的。那么在这个音频文件中,遇到现有曲子的位置,便可以使用现有的曲子的第一映射标识来替代这个曲子的实际编码,从而减少了占用的系统的储存空间。当然,对数据进行分段后,需要对每个分出的数据段落进行标号,标号可以是地址等具有与其他标号进行区分的标识。也就是每一种标号唯一对应一个待复用数据。
[0058] 进一步,本发明所提供的文件储存方法还包括:获取多个待复用子数据和用于调取待复用子数据的第二映射标识,一个第二映射标识用于调取一个待复用子数据;
[0059] 按照预先获取的排列顺序将多个第二映射标识进行组合,以生成第一映射标识;
[0060] 按照预先获取的排列顺序将多个待复用子数据进行组合,以生成待复用数据。
[0061] 如图5和图6所示,R1-R7为待复用数据,S1-S7为待复用子数据,待复用数据通过使用第二映射标识引用待复用子数据的方式来形成自身的储存文件,并且形成了第二映射标识与待复用子数据的对应关系。当读取到第二映射标识的时候,便可以通过第二映射标识与待复用子数据的关系来调取相应的待复用子数据,并且进行显示,或者进行相应的操作。当然,使用待复用子数据的方式,也可以理解为多级复用的方式。待复用子数据也可以添加待复用子子数据,也就是通过多个待复用子子数据来组成待复用子数据,这种多级复用的方式是相类似的,不再赘述。
[0062] 进一步,本发明所提供的文件储存方法还包括:根据预先获取的待储存数据的大小,和/或类型,确定待复用数据,和/或待复用子数据的大小。
[0063] 从编程的角度来看,不同文件的最低层的代码一定会找到相同的段落,如都是二进制的由0和1组成的代码。但如果待复用数据或者待复用子数据的大小如果是如此小的单位(只有1个字节长度)的话,那么在提供给其他文件进行调用的时候,会造成季度频繁的调用,这会大大降低系统的运行速度。同样的,如果待复用数据,或者待复用子数据过大,则很难找到与待复用数据,或者待复用子数据相同的数据段落,因此,需要找个一个合适的范围来限定待复用数据,或者待复用子数据的大小。具体而言,可以根据待储存数据的大小来确定,如果待储存数据较大,那么待复用数据,或者待复用子数据可以相应的大一些,如果待储存数据是重复较多的数据,则也可以相对的增加待复用数据,或者待复用子数据的大小。
[0064] 进一步,本发明所提供的文件储存方法,还包括:在预先获取的已储存数据中查找表达预定的含义的基本数据段;
[0065] 将基本数据段的储存地址作为第一映射标识,或将基本数据段的储存地址作为第二映射标识。
[0066] 为了保证待复用数据,或者待复用子数据中的代码内容是有意义的,也就需要基本数据段是具有一定的含义,这样,在通过第一映射标识,或第二映射标识加入到待储存文件中更有针对性。其中具有一定的含义是指,基本数据段能够表达具体的含义,如基本数据段所对应的是“我”“的”等字,或者是某个图像中的一个像素点的亮度等等。相反的,如果基本数据段不能够表达具体的含义,那么,即使复用到具体的文件中,也需要通过再次添加字符,来使其具有一定的含义。
[0067] 当然,考虑到数据重复的问题。可以将某一段没有具体含义,但重复率较高的数据作为基本数据段,或者说作为待复用数据,或待复用子数据。如一端数据为1234567890,另一端数据位1234567899,还有一段数据位1234567898,那么可以将123456789进行标识,标识为Z,那么三段数据分别变为Z0,Z9和Z8,虽然123456789无法表达实际的含义,但是通过这样的处理能够大大降低系统的储存空间占用。
[0068] 同样,可以在数据中标识指定的位置来作为,某个段落是否具有含义的标识。
[0069] 在预先获取的已储存数据中查找表达预定的含义的基本数据段包括:确定相对应的两个换行符之间所记录的数据为基本数据段;
[0070] 两个相对应的换行符之间没有其他换行符;
[0071] 基本数据段是表达指定含义的基本单位。
[0072] 通常,编码中,两个对应的换行符之间是能够表达一定的具有含义的代码。当然,也可以是两个直接相邻的对应的换行符之间的代码,具体如下:
[0073]
[0074] 第二个和第三个大括号之间的代码也是具有具体含义的,可以将这两个括号之间的代码,作为基本数据段。
[0075] 本发明所提供的文件储存方法还可以包括:在待储存数据中查找是否存在与任意的待复用数据相同的数据;
[0076] 若是,则使用待复用数据的第一映射标识替代待储存数据中与待复用数据相同的数据。
[0077] 也就是在确定了待复用数据之后,多次使用待复用数据在待储存文件中进行检索,以确定每个待复用数据是否存在与待储存文件中。
[0078] 本发明实施例提供的文件储存方法,通过使用待复用数据的第一映射标识替代了待储存数据中,与待复用数据相同的数据部分,从而使储存的时候,不再需要储存与待复用数据相同的部分,而是储存第一映射标识,由于第一映射标识所占据的储存空间远小于待复用数据,并且通过使用了待复用子数据来加强了数据复用的程度(多级复用),能够更为灵活的调整待复用数据的内容,从而,将已替代数据储存到预设的储存位置后,节约了储存空间,解决了现有技术中的不足。
[0079] 本发明实施例2提供了文件修改方法,基于实施例1的文件储存方法,如图7所示,还包括如下步骤:
[0080] S201,根据预先获取的待修改数据的储存地址查找指定的待复用数据;
[0081] S202,按照修改方法对待复用数据进行修改,以生成已修改复用数据;
[0082] S203,将已修改复用数据储存到指定储存位置,以确定已修改复用数据的储存地址;
[0083] S204,将已修改复用数据的储存地址和用于调取已修改复用数据的第一映射标识进行关联。
[0084] 在确定了需要修改的待复用数据后,可以按照预设的方式对其进行修改,修改具体如增加,替换和删除等。修改之后可能会改变待复用数据的大小,如果改变了,那么待复用数据的储存位置就发生了变化。也就是需要改变第一映射标识与储存位置的映射关系。
[0085] 另一方面,若第一映射标识用于调取待复用数据至多个待储存文件中,且存在至少一个待储存文件中的待复用数据不需要修改,
[0086] 则在按照修改方法对待复用数据进行修改,以生成已修改复用数据前还包括:
[0087] 将待修改的待复用数据备份到备份储存位置;
[0088] 使用待复用数据的第三映射标识替代待储存数据中与待复用数据相同的数据,以生成已替代数据,第三映射标识用于调取备份储存位置上的待复用数据。
[0089] 使用的时候存在这种情况,也就是某些引用待复用数据的文件需要待复用数据进行调整,某些引用待复用数据的文件不需要待复用数据进行调整,如此,在进行调整之前,需要对即将进行修改的待复用数据进行备份,并且将需要与调整后的待复用数据进行关联的文件中记载相应的映射标识,在需要与未调整的待复用数据进行关联的文件中记载相应的映射标识。也就是生成了第三映射标识,用于标识待复用数据没有修改的储存位置。
[0090] 若第一映射标识用于调取待复用数据至多个待储存文件中,且需要使用多种修改方式对待复用数据进行修改,则根据预先获取的待修改数据的储存地址查找指定的待复用数据前还包括:
[0091] 对待修改的待复用数据进行多次备份,以生成多份待修改的复用数据。
[0092] 按照修改方法对待复用数据进行修改,以生成已修改复用数据包括:
[0093] 分别按照不同的修改方法对每个待修改的复用数据进行修改,以生成多个已修改复用数据。
[0094] 由于不同的文件需要将待复用数据修改成不同的样子,因此,需要修改多少个版本也就分别备份多少次,然后再针对不同的修改要求对每个备份的待复用数据进行修改,并且在修改之后与相应的文件进行关联(通过第一映射标识进行关联)。
[0095] 传统的文件储存方式,根据具体的需要,需要将相同的文件储存在不同的目录、文件夹下。那么在进行修改的时候,则需要分别对每个文件进行修改,当需要修改的文件内容很庞大时,如文件错位替换等,则需要分别对每个已经储存的文件数据进行相应的调整,也就是需要重复X次,X指的是文件的重复储存的数量。同时,由于文件重复的被删除和插入,导致数据碎片的数量越来越多,当系统需要读取这些文件的时候,需要从不同的位置来调用子文件(完整数据的一部分),这样会大大降低系统的运行速度。而本发明所提供的系统的修改方法,由于一次性可以对所有的相关联的文件进行修改(通过修改待复用数据来修改所有与之相关联的数据),并且不会出现遗漏。对于大数据时代,更加具有针对性,修改的数据量越庞大,本发明所提供的方法的效果越明显。
[0096] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。