CN103500206A - 基于文件存储数据的存储方法及装置 - Google Patents
基于文件存储数据的存储方法及装置 Download PDFInfo
- Publication number
- CN103500206A CN103500206A CN201310455152.6A CN201310455152A CN103500206A CN 103500206 A CN103500206 A CN 103500206A CN 201310455152 A CN201310455152 A CN 201310455152A CN 103500206 A CN103500206 A CN 103500206A
- Authority
- CN
- China
- Prior art keywords
- file
- index
- data
- storage
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据存储领域,尤其涉及基于文件存储数据的存储方法及装置。该方法包括:在操作***中创建存储文件和辅助文件,其中,所述存储文件包括数据文件和索引文件,所述辅助文件包括空字节填充数组和空闲索引列表;接收待存储的数据记录;根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件;分别生成每一个所述数据记录的索引记录,并将所述索引记录存储到所述索引文件,其中,所述索引记录具有固定长度。通过本发明,可以进行高并发及高效读写充分利用存储,避免过多编程,并有很广泛的使用范围。
Description
技术领域
本发明涉及数据存储领域,尤其涉及基于文件存储数据的存储方法及装置。
背景技术
伴随着计算机信息技术日益成熟和企业信息化建设的发展,动态数据的存储在企业信息化中具有十分重要的作用。
目前,在数据交换***中,或者在信息***中常用的动态数据存储基于关系型数据库。基于关系型数据库的数据存储方法包括:获得需要存储的数据记录;将所述数据记录按行存储、按定长大小数据存储或者按系列化对象存储在关系型数据库的数据表中,并对数据库表中的单列或多列创建索引记录,形成索引列表,以便处理所述数据文件的数据记录。
然而,基于关系型数据库的数据存储方法存在着如下的不足:数据库的中间件授权价格昂贵并且还需要额外的编程,造成实施成本及维护成本较高;针对整个数据表构建的索引记录导致在数据存储过程中效率较低。
发明内容
有鉴于此,本发明实施例提供基于文件存储数据的存储方法及装置,来降低实施成本及维护成本。
一方面,本发明实施例提供了基于文件存储数据的存储方法,所述方法包括:
在操作***中创建存储文件和辅助文件,其中,所述存储文件包括数据文件和索引文件,所述辅助文件包括空字节填充数组和空闲索引列表;
接收待存储的数据记录;
根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件;
分别生成每一个所述数据记录的索引记录,并将所述索引记录存储到所述索引文件,其中,所述索引记录具有固定长度。
进一步的,所述在操作***中创建存储文件和辅助文件包括:
接收所述数据文件的名称和所述数据文件的存储单元的长度;
根据所述数据文件的名称和所述数据文件的存储单元的长度,在操作***中创建所述数据文件和所述索引文件,其中所述数据文件用于存储所述数据记录,所述数据文件和所述索引文件名称一致;
构建空字节填充数组,所述空字节填充数组的长度等于所述数据文件的存储单元的长度;
根据所述索引文件构建空闲索引列表,其中,所述空闲索引列表用于获取所述数据文件中的存储位置。
进一步的,所述接收待存储的数据记录之后还包括:
将所述数据记录转化为字节形式;
从所述空闲索引列表中获取第一个空闲索引编号,并把所述第一个空闲索引编号从所述空闲索引列表中删除;
在所述数据文件中定位到所述第一个空闲索引编号的存储位置。
进一步的,所述根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件还包括当实际存储的所述数据记录的长度小于所述数据文件的存储单元的长度时,使用所述空字节填充数组的部分字节填充所述存储单元。
进一步的,所述将所述索引记录存储到所述索引文件中之后包括更新最后一条索引记录。
进一步的,所述索引记录的内容包括所述数据记录的状态、所述数据记录的上一条数据记录的索引编号和所述数据记录的下一条数据记录的索引编号。
对应地,本发明实施例还提出了基于文件存储数据的存储装置,所述装置包括:
创建存储文件和辅助文件模块,用于在操作***中创建存储文件和辅助文件,其中,所述存储文件包括数据文件和索引文件,所述辅助文件包括空字节填充数组和空闲索引列表;
接收数据记录模块,用于接收待存储的数据记录;
存储数据记录模块,用于根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件;
分成并存储索引记录模块,用于分别生成每一个所述数据记录的索引记录,并将所述索引记录存储到所述索引文件,其中,所述索引记录具有固定长度。
进一步的,所述创建存储文件和辅助文件模块包括:
接收配置参数模块,用于接收所述数据文件的名称和所述数据文件的存储单元的长度;
创建文件模块,用于根据所述数据文件的名称和所述数据文件的存储单元的长度,在操作***中创建所述数据文件和所述索引文件,其中所述数据文件用于存储所述数据记录,所述数据文件和所述索引文件名称一致;
构建空字节填充数组模块,用于构建空字节填充数组,所述空字节填充数组的长度等于所述存储单元的长度;
构建空闲索引列表模块,用于根据所述索引文件构建空闲索引列表,其中,所述空闲索引列表用于获取所述数据文件中的存储位置。
进一步的,所述装置还包括:
数据记录格式转化模块,用于将所述数据记录转化为字节形式;
空闲索引编号检索模块,用于从所述空闲索引列表中获取第一个空闲索引编号,并把所述第一个空闲索引编号从所述空闲索引列表中删除;
存储位置定位模块,用于在所述数据文件中定位到所述第一个空闲索引编号的存储位置。
进一步的,所述存储数据记录模块还包括空字节填充模块,用于当实际存储的所述数据记录的长度小于所述数据文件的存储单元的长度时,使用所述空字节填充数组的部分字节填充所述存储单元。
进一步的,所述生成并存储索引记录模块还包括更新最后一条索引记录模块,用于更新最后一条索引记录。
进一步的,所述索引记录的内容包括所述数据记录的状态、所述数据记录的上一条数据记录的索引编号和所述数据记录的下一条数据记录的索引编号。
本发明实施例提出的基于文件存储数据的存储方法及装置,具有如下特点:首先,采用数据文件存储需要交换的数据或信息***运行所需的动态数据,并可通过简单的API(Application Programming Interface,应用程序编程接口)进行高并发和高效读写,避免过多编程,并且有广泛的使用范围;其次,每条数据记录都有一个简单的、非常小索引记录,这样就能高效的定位到数据记录;另外,在数据文件中是按字节存储,这样既可以存储字符串,也可以存储系列化对象,提高了其适用范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明第一实施例中的基于文件存储数据的存储方法的实现流程图;
图2是数据文件中的所存储的数据记录示意图;
图3是索引文件中的所存储的索引记录示意图;
图4是索引记录的示意图;
图5为根据本发明第一实施例的基于文件存储数据的删除方法的实现流程图;
图6是根据本发明第三实施例的基于文件存储数据的存储装置的实现流程图;
图7是根据本发明第三实施例的基于文件存储数据的存储装置的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
在图1-图4中示出了本发明的第一实施例。
图1为根据本发明第一实施例的基于文件存储数据的存储方法的实现流程100,该实现流程100详述如下:
在步骤101中,在操作***中创建存储文件和辅助文件,其中,所述存储文件包括数据文件和索引文件,所述辅助文件包括空字节填充数组和空闲索引列表。
在第一实施例中,数据存储客户端在操作***中创建存储文件、辅助文件和存储接口,其中,存储文件包括数据文件和索引文件。数据文件用于存储数据记录,索引文件用于存储数据记录的存储信息的索引记录。图2是数据文件中的所存储的数据记录示意图,数据文件中每条数据记录的长度是固定的,即数据文件的存储单元具有固定的长度。根据实际的应用场景进行评估确定,设置数据记录的长度为所需要处理数据集合中的最大长度值接近的值,数据记录以无序随机存储方式存储于数据文件。图3是索引文件中的所存储的索引记录示意图,索引文件以无序随机存储方式存储具有固定长度的索引记录集合。索引记录与数据记录一一对应,即每一条数据记录都有一条记录其存储信息的索引记录。图4是索引记录的示意图,索引记录包括数据记录的状态、数据记录的上一条记录的索引编号(上一条索引编号)和数据记录的下一条记录的索引编号(下一条索引编号)。由于索引记录中数据记录状态为布尔型(数据记录状态为false表示数据记录已经被使用,true表示数据记录未被使用)占用一个字节、上一条索引编号及下一条索引编号均为长整型,均占用8个字节,因此,索引记录具有17字节的固定长度。
在操作***中初始化存储文件和辅助文件包括下列步骤:首先,接收外部编程设定的数据文件的名称和数据文件的存储单元的长度;其次,根据所述数据文件的名称和所述数据文件的存储单元的长度构建并以随即读写方式打开数据文件,同步构建并以随即读写方式打开与所述数据文件名称一致的索引文件,其中,所述数据文件和所述索引文件的文件后缀不同,如索引文件后缀为idx,数据文件后缀为mdf;再次,构建填充字节数组,其中,所述填充字节数组的内容是空字节,其长度与数据文件中存储单元的长度一致,目的在于当数据记录存储到数据文件中时,如果数据记录实际长度小于数据装置配置的数据记录长度,将使用该填充字节数组的部分字节进行填充;最后,根据所述索引文件构建空闲索引列表。构建空闲索引列表的过程中,如果索引文件为空文件,则空闲索引列表为空的;否则,遍历索引文件,读取所有的索引记录,如果索引记录的数据记录状态为false,则添加到空闲索引列表中,空闲索引列表的构建为快速的常规处理,能够简单的通过索引文件计算出那些记录索引编号是可用的,另外,为了高效的完成存储装置的初始化,这里需要单独的使用缓存的IO(Input/Output,输入或输出)操作,把索引文件中那些索引记录中的数据记录状态为false的添加到空闲索引列表中。
在步骤102中,接收待存储的数据记录。
在完成步骤101中存储文件初始化后,存储装置就处于可使用状态,可以接收待存储的数据记录,其中所述数据记录可以为任何数据,包括文本、字节流和图片等。
在步骤103中,根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件。
将数据记录存储到数据文件之前还包括下列步骤;存储接口将所述数据记录转化为字节形式,更进一步地,转化为UTF格式;从所述空闲索引列表中获取第一个空闲索引编号,并把所述第一个空闲索引编号从所述空闲索引列表中删除;在所述数据文件中定位到所述第一个空闲索引编号的存储位置,通过将第一个空闲索引编号乘以数据文件中存储单元的长度实现的。
将所述数据记录写入数据文件时,还需要用每条实际输入记录的长度减去数据文件中存储单元的字节长度,当结果不为0时,即实际存储的所述数据记录的长度小于所述存储单元的长度时,使用所述填充字节数组的部分字节填充所述存储单元。
在步骤104中,分别生成每一个所述数据记录的索引记录,并将所述索引记录存储到所述索引文件,其中,所述索引记录具有固定长度。
存储接口根据每一个所述数据记录分别生成一个索引记录。第一个空闲索引编号乘以索引记录长度17从而获得第一个空闲索引编号的序号存储位置,并且通过随机定位方式定位到第一个空闲索引编号序号存储位置。紧接着在索引文件中写入与所述数据记录相对应的索引记录,其中,是否使用过该数据记录的标识的值为false和上一条索引编号为最后一条数据记录的索引编号,同时下一条数据记录的索引编号为-1。同时地,更新最后一条索引记录的下一条索引编号为当前记录的索引编号,即所述第一个空闲索引编号,设置最后一条记录的索引编号为当前记录的索引编号。
本发明第一实施例是利用操作***中的存储文件即数据文件和索引文件存储数据记录,而且所述数据文件的存储单元具有固定长度,针对每一个数据记录分别构建一个索引记录存储于索引文件中,这样就能高效的定位到某条数据记录以及所述某条数据记录的存储位置,同时,数据记录在数据文件中按字节存储,这样既可以存储字符串,也可以存储系列化对象,提高了适用范围。另外,本发明的第一实施例,采用操作***中的存储文件存储数据记录,只需要简单的API接口进行高并发及高效读写,有效地避免了基于关系型数据库存储数据的过程中需要大量额外的编程以及后续的程序维护,从而有效地降低了开发成本。
在图5中示出了本发明的第二实施例。
图5为根据本发明第一实施例的基于文件存储数据的删除方法的实现流程500,该实现流程500详述如下:
在步骤501中,接收待删除数据记录的序号。
本发明实施例应用于同步删除存储文件中的数据记录及所述数据记录的索引记录,其中存储文件包括数据文件和索引文件。所述数据记录和索引记录分别存储于数据文件和索引文件中,数据记录以固定长度的字节形式存储于数据文件中,以序号标识数据记录。索引记录包括数据记录的状态、数据记录的上一条记录的索引编号即上一条索引编号、数据记录的下一条记录的索引编号即下一条索引编号,其中,数据记录状态为布尔型(数据记录状态为false代表该数据记录未被使用或者为true代表该数据记录被使用),数据记录装置占用一个字节、上一条索引编号及下一条索引编号均为长整型,均占用8个字节,因此索引记录长度固定为17字节。存储文件记录的存储,不是有序的,而是把记录存储到可用的位置。
接收待删除数据记录的序号,能够快速定位到所述数据记录和所述数据记录的索引记录,进而为高效完成删除该数据记录做铺垫。
在步骤502中,根据所述待删除数据记录的序号,同步删除所述数据记录并更新所述数据记录的上一条数据记录或者下一条数据记录的索引记录。
每条数据记录都具有一个与之相对应的索引记录。由于索引记录中含有数据记录的上一条索引编号和数据记录的下一条索引编号,因此删除所述数据记录时需要更新所述数据记录相邻的上一条数据记录或者下一条数据记录的索引记录。
根据所述待删除数据记录的序号,分别通过如下步骤删除所述数据记录,并同步更新相关联的索引记录:
当待删除数据记录为其所在的数据文件中第一条数据记录且为最后一条数据记录,即为数据文件中唯一条数据记录时,设置所述数据文件中第一条数据记录和最后一条数据记录均为-1。
当待删除数据记录为其所在的数据文件中第一条数据记录但不是最后一条数据记录时,进行如下操作:从与所述数据文件名称相一致的索引文件中读取第一条索引记录中的下一条索引编号;根据所述下一条索引编号获取下一条索引编号所对应的下一条索引记录和下一条数据记录;将所述下一条数据记录设置为第一条数据记录;将所述下一条索引记录中的上一条索引编号设置为-1。
当待删除数据记录为其所在的数据文件中最后一条数据记录但不是第一条数据记录时,进行如下操作:从与所述数据文件名称相一致的索引文件中读取最后一条索引记录中的上一条索引编号;根据所述上一条索引编号获取上一条索引编号所对应的上一条索引记录和上一条数据记录;将所述上一条数据记录设置为最后一条数据记录;将所述上一条索引记录中的下一条索引编号设置为-1。
当待删除数据记录为其所在的数据文件中既不为第一条数据记录同时也不是最后一条数据记录时,进行如下操作:从与所述数据文件名称相一致的索引文件中读取所述待删除数据记录对应的索引记录中的上一条索引编号和下一条索引编号;根据所述上一条索引编号和下一条索引编号分别地定位读取所述上上一条索引记录和下一条索引记录,设置所述上一条索引记录中的下一条索引编号为下一条数据记录的索引编号,下一条索引记录的上一条索引编号为上一条数据记录的索引编号。
在步骤503中,在索引文件中的读取所述待删除数据记录的索引记录,设置该索引记录中数据记录状态为false。
在数据文件中删除数据记录后,在与所述数据文件名称一致的索引文件中读取所述待删除数据记录的索引记录,设置所述索引记录中的数据记录状态为未使用,即设置为布尔型数据false。
在步骤504中,在空闲索引列表中添加所述索引记录的索引编号。
在删除数据记录后,释放了该数据记录的存储单元。将所述数据记录的索引记录编号添加到空闲列表中,以使新的数据记录能够使用释放的存储单元。
步骤501至步骤504适用于删除一部分数据记录,其中,所述数据记录存储于即为文件存储的装置中。如果删除数据存储装置中的所有数据记录时,通过如下简单操作即可实现:同步设置数据文件和索引文件的长度均为0即可,另外情况空闲索引列表中的空闲索引编号。
以下为本发明实施例的装置实施例,本发明的方法实施例和装置实施例属于同一构思,在装置实施例中未详尽描述的细节内容,可以参考上述方法实施例。
在图6和图7中示出了本发明的第三实施例。
图6为根据本发明第三实施例的基于文件存储数据的存储装置的实现流程600,该的实现流程600,该装置600详述如下:
该装置包括:创建存储文件和辅助文件模块601,用于在操作***中创建存储文件和辅助文件,其中,所述存储文件包括数据文件和索引文件,所述辅助文件包括空字节填充数组和空闲索引列表;接收数据记录模块602,用于接收待存储的数据记录;存储数据记录模块603,用于根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件;分成并存储索引记录模块604,用于分别生成每一个所述数据记录的索引记录,并将所述索引记录存储到所述索引文件,其中,所述索引记录具有固定长度。
该装置还包括:数据记录格式转化模块,用于将所述数据记录转化为字节形式;空闲索引编号检索模块,用于从所述空闲索引列表中获取第一个空闲索引编号,并把所述第一个空闲索引编号从所述空闲索引列表中删除;存储位置定位模块,用于在所述数据文件中定位到所述第一个空闲索引编号的存储位置。
更进一步的,所述创建存储文件和辅助文件模块601包括:接收配置参数模块,用于接收所述数据文件的名称和所述数据文件的存储单元的长度;创建文件模块,用于根据所述数据文件的名称和所述数据文件的存储单元的长度,在操作***中创建所述数据文件和所述索引文件,其中所述数据文件用于存储所述数据记录,所述数据文件和所述索引文件名称一致;构建空字节填充数组模块,用于构建空字节填充数组,所述空字节填充数组的长度等于所述存储单元的长度;构建空闲索引列表模块,用于根据所述索引文件构建空闲索引列表,其中,所述空闲索引列表用于高效获取所述数据文件中的存储位置。
更进一步的,所述存储数据记录模块603还包括空字节填充模块,用于当实际存储的所述数据记录的长度小于所述存储单元的长度时,使用所述空字节填充数组的部分字节填充所述存储单元。所述生成并存储索引记录模块604还包括更新最后一条索引记录模块,用于更新最后一条索引记录。
参见图7,该存储装置分别通过存储接口和读取接口在该装置存储数据记录和对外提供记录。读取接口读取数据记录的一种实现方式为根据索引编号读取数据记录,即以一个索引编号为参数,返回待读取的数据记录;另外一种实现方式是为数据存储装置提供类似于Java数组中遍历器Iterator,使用者能够更加便利的进行数据记录浏览封装,减少使用者的编程工作量。遍历器提供下一条记录操作、是否还有下一条操作和移除数据记录操作,所有这些操作均为同步操作,保证数据的一致性。
更进一步,该存储装置还包括数据记录遍历器,能够为使用者提供更加便利的。
更进一步的,该存储装置还可以包括数据记录总数设置模块,用于为数据存储装置增加数据文件可以保存的记录总数,这样可以有效的避免因为大量数据写入而造成数据文件过大,在写入时,如果数据文件中的数据记录数量超过数据存储装置所配置的记录总数,则可以报警并拒绝存储数据记录,也可以擦除最老的数据,而把数据写入到老数据的位置。
更进一步,该装置还可以包括数据文件名称驱动返回模块,用于提供根据数据文件名称返回存储装置实例的操作,这样更加方便多线程并发数据存取应用场景。
该装置还包括是否关闭的标识模块,用于设置是否关闭该数据存储装置,该标识模块的内容为布尔型数据即为true或false。如果需要关闭数据存储装置时,只需设置该标识为true,并关闭数据文件和索引文件即可。当存储装置关闭后,后续对数据存储装置的所有后续操作均不被执行,并会抛出数据读取异常提醒。
本发明基于文件存储需要交换的数据或信息***运行所需的动态数据,并可通过简单的API进行高并发及高效读写,避免过多额外的编程,有效降低了存储数据的实施成本及维护成,并有很广泛的使用范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (12)
1.基于文件存储数据的存储方法,其特征在于,所述方法包括:
在操作***中创建存储文件和辅助文件,其中,所述存储文件包括数据文件和索引文件,所述辅助文件包括空字节填充数组和空闲索引列表;
接收待存储的数据记录;
根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件;
分别生成每一个所述数据记录的索引记录,并将所述索引记录存储到所述索引文件,其中,所述索引记录具有固定长度。
2.根据权利要求1所述的方法,其特征在于,所述在操作***中创建存储文件和辅助文件包括:
接收所述数据文件的名称和所述数据文件的存储单元的长度;
根据所述数据文件的名称和所述数据文件的存储单元的长度,在操作***中创建所述数据文件和所述索引文件,其中所述数据文件用于存储所述数据记录,所述数据文件和所述索引文件名称一致;
构建空字节填充数组,所述空字节填充数组的长度等于所述数据文件的存储单元的长度;
根据所述索引文件构建空闲索引列表,其中,所述空闲索引列表用于获取所述数据文件中的存储位置。
3.根据权利要求1所述的方法,其特征在于,所述接收待存储的数据记录之后还包括:
将所述数据记录转化为字节形式;
从所述空闲索引列表中获取第一个空闲索引编号,并把所述第一个空闲索引编号从所述空闲索引列表中删除;
在所述数据文件中定位到所述第一个空闲索引编号的存储位置。
4.根据权利要求1所述的方法,其特征在于,所述根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件还包括当实际存储的所述数据记录的长度小于所述数据文件的存储单元的长度时,使用所述空字节填充数组的部分字节填充所述存储单元。
5.根据权利要求1所述的方法,其特征在于,所述将所述索引记录存储到所述索引文件中之后包括更新最后一条索引记录。
6.根据权利要求1所述的方法,其特征在于,所述索引记录的内容包括所述数据记录的状态、所述数据记录的上一条数据记录的索引编号和所述数据记录的下一条数据记录的索引编号。
7.基于文件存储数据的存储装置,其特征在于,所述装置包括:
创建存储文件和辅助文件模块,用于在操作***中创建存储文件和辅助文件,其中,所述存储文件包括数据文件和索引文件,所述辅助文件包括空字节填充数组和空闲索引列表;
接收数据记录模块,用于接收待存储的数据记录;
存储数据记录模块,用于根据所述辅助文件将所述数据记录以固定长度的字节形式存储到所述数据文件;
分成并存储索引记录模块,用于分别生成每一个所述数据记录的索引记录,并将所述索引记录存储到所述索引文件,其中,所述索引记录具有固定长度。
8.根据权利要求7所述的装置,其特征在于,所述创建存储文件和辅助文件模块包括:
接收配置参数模块,用于接收所述数据文件的名称和所述数据文件的存储单元的长度;
创建文件模块,用于根据所述数据文件的名称和所述数据文件的存储单元的长度,在操作***中创建所述数据文件和所述索引文件,其中所述数据文件用于存储所述数据记录,所述数据文件和所述索引文件名称一致;
构建空字节填充数组模块,用于构建空字节填充数组,所述空字节填充数组的长度等于所述存储单元的长度;
构建空闲索引列表模块,用于根据所述索引文件构建空闲索引列表,其中,所述空闲索引列表用于获取所述数据文件中的存储位置。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
数据记录格式转化模块,用于将所述数据记录转化为字节形式;
空闲索引编号检索模块,用于从所述空闲索引列表中获取第一个空闲索引编号,并把所述第一个空闲索引编号从所述空闲索引列表中删除;
存储位置定位模块,用于在所述数据文件中定位到所述第一个空闲索引编号的存储位置。
10.根据权利要求7所述的装置,其特征在于,所述存储数据记录模块还包括空字节填充模块,用于当实际存储的所述数据记录的长度小于所述数据文件的存储单元的长度时,使用所述空字节填充数组的部分字节填充所述存储单元。
11.根据权利要求7所述的装置,其特征在于,所述生成并存储索引记录模块还包括更新最后一条索引记录模块,用于更新最后一条索引记录。
12.根据权利要求7所述的装置,其特征在于,所述索引记录的内容包括所述数据记录的状态、所述数据记录的上一条数据记录的索引编号和所述数据记录的下一条数据记录的索引编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310455152.6A CN103500206A (zh) | 2013-09-29 | 2013-09-29 | 基于文件存储数据的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310455152.6A CN103500206A (zh) | 2013-09-29 | 2013-09-29 | 基于文件存储数据的存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103500206A true CN103500206A (zh) | 2014-01-08 |
Family
ID=49865416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310455152.6A Pending CN103500206A (zh) | 2013-09-29 | 2013-09-29 | 基于文件存储数据的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103500206A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268091A (zh) * | 2014-09-19 | 2015-01-07 | 深圳市心讯网络科技有限公司 | 文件储存方法和文件修改方法 |
CN107193322A (zh) * | 2016-03-15 | 2017-09-22 | 苏州普源精电科技有限公司 | 一种波形数据加载方法及装置 |
CN107870973A (zh) * | 2017-09-20 | 2018-04-03 | 广东东为信息技术有限公司 | 一种加快多路监控同时回放的文件存储*** |
CN108509213A (zh) * | 2018-03-15 | 2018-09-07 | 广州悦世界信息科技有限公司 | 用于移动游戏数据存取更新及保护方法 |
CN110059065A (zh) * | 2019-04-25 | 2019-07-26 | 北京酷我科技有限公司 | 一种磁盘索引数据的方法 |
CN112422491A (zh) * | 2020-05-08 | 2021-02-26 | 上海幻电信息科技有限公司 | 数字编码的加密解密方法、服务器和存储介质 |
CN112735450A (zh) * | 2020-12-30 | 2021-04-30 | 北京百瑞互联技术有限公司 | 基于语音通道传输数据的方法、装置、存储介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010056414A1 (en) * | 2000-04-04 | 2001-12-27 | Christal David B. | Method and system for conducting a full text search on a client system by a server system |
US20040243560A1 (en) * | 2003-05-30 | 2004-12-02 | International Business Machines Corporation | System, method and computer program product for performing unstructured information management and automatic text analysis, including an annotation inverted file system facilitating indexing and searching |
CN1920796A (zh) * | 2005-08-24 | 2007-02-28 | 三星电子株式会社 | 用于将文件的数据存储在存储块中的高速缓存方法及*** |
CN1924853A (zh) * | 2006-09-14 | 2007-03-07 | 南京中兴软创软件有限公司 | 一种加速数据库查询速度的方法 |
CN101197844A (zh) * | 2007-12-12 | 2008-06-11 | 浙江大学 | 基于发布订阅***的文件存储方法 |
CN102253980A (zh) * | 2011-06-23 | 2011-11-23 | 上海西本网络科技有限公司 | 数据处理方法及数据处理*** |
-
2013
- 2013-09-29 CN CN201310455152.6A patent/CN103500206A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010056414A1 (en) * | 2000-04-04 | 2001-12-27 | Christal David B. | Method and system for conducting a full text search on a client system by a server system |
US20040243560A1 (en) * | 2003-05-30 | 2004-12-02 | International Business Machines Corporation | System, method and computer program product for performing unstructured information management and automatic text analysis, including an annotation inverted file system facilitating indexing and searching |
CN1920796A (zh) * | 2005-08-24 | 2007-02-28 | 三星电子株式会社 | 用于将文件的数据存储在存储块中的高速缓存方法及*** |
CN1924853A (zh) * | 2006-09-14 | 2007-03-07 | 南京中兴软创软件有限公司 | 一种加速数据库查询速度的方法 |
CN101197844A (zh) * | 2007-12-12 | 2008-06-11 | 浙江大学 | 基于发布订阅***的文件存储方法 |
CN102253980A (zh) * | 2011-06-23 | 2011-11-23 | 上海西本网络科技有限公司 | 数据处理方法及数据处理*** |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268091A (zh) * | 2014-09-19 | 2015-01-07 | 深圳市心讯网络科技有限公司 | 文件储存方法和文件修改方法 |
CN104268091B (zh) * | 2014-09-19 | 2016-02-24 | 盛杰 | 文件储存方法和文件修改方法 |
CN107193322A (zh) * | 2016-03-15 | 2017-09-22 | 苏州普源精电科技有限公司 | 一种波形数据加载方法及装置 |
CN107870973A (zh) * | 2017-09-20 | 2018-04-03 | 广东东为信息技术有限公司 | 一种加快多路监控同时回放的文件存储*** |
CN108509213A (zh) * | 2018-03-15 | 2018-09-07 | 广州悦世界信息科技有限公司 | 用于移动游戏数据存取更新及保护方法 |
CN110059065A (zh) * | 2019-04-25 | 2019-07-26 | 北京酷我科技有限公司 | 一种磁盘索引数据的方法 |
CN112422491A (zh) * | 2020-05-08 | 2021-02-26 | 上海幻电信息科技有限公司 | 数字编码的加密解密方法、服务器和存储介质 |
CN112735450A (zh) * | 2020-12-30 | 2021-04-30 | 北京百瑞互联技术有限公司 | 基于语音通道传输数据的方法、装置、存储介质及设备 |
CN112735450B (zh) * | 2020-12-30 | 2023-03-17 | 北京百瑞互联技术有限公司 | 基于语音通道传输数据的方法、装置、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103500206A (zh) | 基于文件存储数据的存储方法及装置 | |
CN102541927B (zh) | 一种实现数据缓存的方法和装置 | |
CN101258493B (zh) | 用于在顺序存取数据存储子***中执行搜索操作的***和方法 | |
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其*** | |
CN103412803B (zh) | 数据恢复的方法及装置 | |
CN104239443B (zh) | 一种序列化数据操作日志的存储方法 | |
CN100456264C (zh) | 一种磁盘空间管理方法及*** | |
CN105069048A (zh) | 一种小文件存储方法、查询方法和装置 | |
CN100399325C (zh) | 一种嵌入式数据库的数据备份和恢复方法 | |
US20140156603A1 (en) | Method and an apparatus for splitting and recovering data in a power system | |
CN103473298B (zh) | 数据归档方法和装置以及存储*** | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN102779138B (zh) | 实时数据的硬盘存取方法 | |
CN103617277A (zh) | 一种还原误删除的数据表内容的方法 | |
CN100449545C (zh) | 访问扇区数据的方法和*** | |
CN107967122A (zh) | 一种块设备的数据写入方法、装置及介质 | |
CN104424219A (zh) | 一种数据文件的管理方法及装置 | |
CN103049393B (zh) | 内存空间管理方法和装置 | |
US8275812B2 (en) | Method to reduce wasted character data areas of java strings | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN106155832A (zh) | 一种数据恢复的方法、装置及Android设备 | |
CN103123651B (zh) | 一种查看多个同类文件的方法、装置和移动设备 | |
CN103257987A (zh) | 基于规则的分布式日志服务实现方法 | |
CN102799583B (zh) | 一种面向对象的存取方法及*** | |
CN102073690A (zh) | 一种支持历史Key信息的内存数据库 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140108 |
|
RJ01 | Rejection of invention patent application after publication |