CN107391029B - 一种文件存储、读取方法及其对应的系统 - Google Patents
一种文件存储、读取方法及其对应的系统 Download PDFInfo
- Publication number
- CN107391029B CN107391029B CN201710453106.0A CN201710453106A CN107391029B CN 107391029 B CN107391029 B CN 107391029B CN 201710453106 A CN201710453106 A CN 201710453106A CN 107391029 B CN107391029 B CN 107391029B
- Authority
- CN
- China
- Prior art keywords
- file
- subfile
- disk
- storage
- reading
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种文件存储、读取方法及其对应的系统,所述的文件存储方法包括:S1a,将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;S2a,将两个子文件分别存储于内置磁盘和外置磁盘。本发明将整个加载文件进行拆分,将拆分后的子文件分别存储于移动设备的内置磁盘和外置磁盘,然后通过并行读取两个磁盘的文件内容来达到提高磁盘读取速度的目的。
Description
技术领域
本发明涉及磁盘读写技术领域,更具体地,涉及一种文件存储、读取方法及其对应的系统。
背景技术
在移动端开发过程中,通常会使用到文件操作,文件操作是一个非常普遍的操作流程,在计算机技术的发展过程中,最大的瓶颈就是磁盘的读写速度。
随着CPU和内存等设备的性能的不断提升,磁盘读写速度的提升缺非常有限,当文件非常大的时候,将整个文件存储于移动设备的磁盘中,磁盘的读写速度会非常慢,较慢的磁盘读写速度是限制性能的非常大的瓶颈。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的文件存储、读取方法及其对应的系统,能够克服磁盘读写速度慢的问题。
根据本发明的第一个方面,提供一种文件存储方法,包括:
S1a,将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;
S2a,将两个子文件分别存储于内置磁盘和外置磁盘。
本发明的有益效果为:将整个加载文件进行拆分,将拆分后的子文件分别存储于移动设备的内置磁盘和外置磁盘,然后通过并行读取两个磁盘的内容来达到提高磁盘读取速度的目的。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,所述步骤S1进一步包括:
设内置磁盘的读写速度为A1,外置磁盘的读写速度为A2,则每一个加载文件的拆分率n=A1/(A1+A2);
设每一个加载文件的大小为M,每一个加载文件的第一子文件的大小为B1,第二子文件的大小为B2,则B1=n*M,B2=(1-n)*M;
所述步骤S2a进一步包括:
将每一个加载文件的第一子文件存储于内置磁盘中,以及将每一个加载文件的第二子文件存储于外置磁盘中。
进一步的,还包括:
在内置磁盘中定义第一存储文件以及在外置磁盘中定义第二存储文件;
分别将每一个加载文件的第一子文件存储于内置磁盘的第一存储文件中,以及将每一个加载文件的第二子文件存储于外置磁盘的第二存储文件中。
进一步的,所述第一存储文件和所述第二存储文件均由文件头部部分和文件内容部分组成,所述第一存储文件的文件头部部分和所述第二存储文件的文件头部部分相同,所述第一存储文件的文件内容部分和所述第二存储文件的文件内容部分不同。
进一步的,所述文件头部部分包括多个数据结构,所述数据结构的数量与加载文件的数量相同,每一个数据结构存储如下信息:
每一个加载文件的名称+每一个加载文件的第一子文件在第一存储文件中的起始地址+每一个加载文件的第一子文件在第一存储文件中的结束地址+每一个加载文件的第二子文件在第二存储文件中的起始地址+每一个加载文件的第二子文件在第二存储文件中的结束地址。
根据本发明的第二个方面,提供了一种文件读取方法,包括:
S1b,根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;
S2b,对第一子文件和第二子文件进行合并,组成整个加载文件。
进一步的,还包括:
为内置磁盘的第一存储文件设置第一游标,以及为外置磁盘的第二存储文件设置第二游标;
所述步骤S1b进一步包括:
根据读取文件的文件名称,通过移动第一游标在第一存储文件的文件头部信息中查询,与所述文件名称对应的加载文件的第一子文件在第一存储文件中的起始地址和结束地址,以及通过移动第二游标在第二存储文件的文件头部信息中查询,与所述文件名称对应的加载文件的第二子文件在第二存储文件中的起始地址和结束地址。
进一步的,所述步骤S1b进一步包括:
为第一存储文件设置第一文件指针以及位第二存储文件设置第二文件指针;
通过第一文件指针从加载文件的第一子文件在第一存储文件中的起始地址移动到结束地址,读取加载文件的第一子文件;以及
通过第二文件指针从加载文件的第二子文件在第二存储文件中的起始地址移动到结束地址,读取加载文件的第二子文件。
根据本发明的第三方面,提供了一种文件存储系统,包括:
拆分模块,用于将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;
存储模块,用于将两个子文件分别存储于内置磁盘和外置磁盘。
根据本发明的第四方面,还提供了一种文件读取系统,包括:
读取模块,用于根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;
合并模块,用于对第一子文件和第二子文件进行合并,组成整个加载文件。
附图说明
图1为本发明一个实施例的文件存储方法流程图;
图2为本发明另一个实施例的文件读取方法流程图;
图3为本发明一个实施例的文件存储系统连接框图;
图4为本发明另一个实施例的文件读取系统连接框图;
图5为本发明又一个实施例的文件读取系统整体连接框图;
图6为本发明一个实施例的文件存储方法的设备连接框图;
图7为本发明另一个实施例的文件读取方法的设备连接框图;
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,提供了本发明一个实施例的文件存储方法,包括:S1a,将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;S2a,将两个子文件分别存储于内置磁盘和外置磁盘。
在移动开发过程中,通常会使用到文件操作,文件操作是一个非常普遍的操作流程,在计算机技术的发展过程中,最大的瓶颈就是磁盘的读写速度。由于移动设备磁盘通常会被划分为两大块,其中一块为移动设备的内置存储器,移动设备的内置存储器通常情况下位flash存储器,为描述方便,以下统称为内置磁盘。另外一块为存储扩展卡,也就是通常所说的sd卡,以下统称为外置磁盘。
在移动开发过程中,文件可以存储到上述两块磁盘中的任意一块存储空间中,在操作系统中,这两块存储空间是相互独立的两个磁盘,操作系统能够对这两个磁盘同时进行读取,并且在同时进行读取操作的时候,两者之间并不会产生任何影响。因此,本实施例为了提高移动设备磁盘的读写速度,将需要存储的原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度进行拆分,拆分成两个子文件,并将每一个加载文件的两个子文件分别存储于内置磁盘和外置磁盘中。这样当需要对移动设备磁盘中的文件读取时,可以对内置磁盘中的子文件和外置磁盘的子文件同时进行读取。如果内置磁盘的读取速度和外置磁盘的读写速度相同的情况下,同时在两块磁盘上读取相同大小的文件的速度是原来在一块磁盘上读取文件的速度的2倍,读取时间将会比原来节省50%的开销。
本实施例将整个加载文件进行拆分,将拆分后的子文件分别存储于移动设备的内置磁盘和外置磁盘,然后通过并行读取两个磁盘的内容来达到提高磁盘读取速度的目的。
在本发明的一个实施例中,所述步骤S1进一步包括:设内置磁盘的读写速度为A1,外置磁盘的读写速度为A2,则每一个加载文件的拆分率n=A1/(A1+A2)。设每一个加载文件的大小为M,每一个加载文件的第一子文件的大小为B1,第二子文件的大小为B2,则B1=n*M,B2=(1-n)*M。所述步骤S2进一步包括:将每一个加载文件的第一子文件存储于内置磁盘中,以及将每一个加载文件的第二子文件存储于外置磁盘中。
上述实施例中提出将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度进行拆分。通常情况下移动设备内置的flash存储器的读写速度要快于外置sd卡。举例说明,假如移动设备内置flash存储器的读写速度为10M/S,移动设备外置sd卡的读写速度为5M/S,即内置存储器的读写速度是外置存储器的读写速度的2倍。因此,将加载文件的大小按照2:1的比例进行拆分,假如加载文件的大小为9M,则将加载文件拆分为6M的子文件和3M的子文件,且将6M的子文件存储于内置存储器中,将3M的子文件存储于外置存储器中。这样当同时对内置存储器和外置存储器中的子文件进行加载时,可以使得在内置存储器加载完成6M内容的时候,外置存储器也刚好加载完3M的内容,这样就确保了内置存储器中的内容和外置存储器中的内容同时被加载完成。
通过上述的举例说明,可以总结每一个加载文件的拆分方式,设内置磁盘的读写速度为A1,外置磁盘的读写速度为A2,则每一个加载文件的拆分率为n=A1/(A1+A2)。假设每一个加载文件的大小为M,那么每一个加载文件的第一子文件的大小为B1,第二子文件的大小为B2,其中,B1=n*M,B2=(1-n)*M。每一个加载文件拆分之后,将每一个加载文件的第一子文件存储于内置磁盘中,以及将每一个加载文件的第二子文件存储于外置磁盘中。
在本发明的另一个实施例中,还包括:在内置磁盘中定义第一存储文件以及在外置磁盘中定义第二存储文件;分别将每一个加载文件的第一子文件存储于内置磁盘的第一存储文件中,以及将每一个加载文件的第二子文件存储于外置磁盘的第二存储文件中。
为便于将原始文件集中的每一个加载文件拆分后的子文件分别存储于内置磁盘和外置磁盘,本实施例在内置磁盘中定义一个存储文件,以下称为第一存储文件,以及在外置磁盘中也定义一个存储文件,以下称为第二存储文件。将每一个加载文件拆分后的第一子文件存储于内置磁盘的第一存储文件中,将每一个加载文件拆分后的第二子文件存储于外置磁盘的第二存储文件中。这样就将原始文件集中的所有加载文件拆分后的第一子文件都存储到了内置磁盘的第一存储文件中,以及将所有加载文件拆分后的第二子文件存储到了外置磁盘的第二存储文件中。
在本发明的一个实施例中,所述第一存储文件和所述第二存储文件均由文件头部部分和文件内容部分组成,所述第一存储文件的文件头部部分和所述第二存储文件的文件头部部分相同,所述第一存储文件的文件内容部分和所述第二存储文件的文件内容部分不同。
为了方便后续对内置磁盘和外置磁盘中的文件进行快速读取,设计了文件内部组织结构。通常,原始文件集中需要加载的文件有很多个,比如,原始文件集中有很多个图片文件,对每一个图片文件拆分后,每一个图片文件的一部分存储于内置磁盘的第一存储文件中,每一个图片文件的另一部分存储于外置磁盘的第二存储文件中。为描述方便,将第一存储文件简称为mybin1,将第二存储文件简称为mybin2,下面主要描述一下mybin1和mybin2的文件内部组织结构。
Mybin1文件和mybin2文件均由两部分组成,第一部分为文件头部分,主要包含对文件的描述信息;第二部分为文件的真实内容部分,包括文件的真实内容信息。Mybin1和mybin2两个文件的文件头部分中的信息是完全一样的,而第二部分的文件的内容部分是不相同的。
其中,文件头部部分包括多个数据结构,所述数据结构的数量与加载文件的数量相同,每一个数据结构存储如下信息:每一个加载文件的名称+每一个加载文件的第一子文件在第一存储文件中的起始地址+每一个加载文件的第一子文件在第一存储文件中的结束地址+每一个加载文件的第二子文件在第二存储文件中的起始地址+每一个加载文件的第二子文件在第二存储文件中的结束地址。
这样就在mybin1文件和mybin2文件的头部部分存储了每一个加载文件的描述信息,即每一个加载文件的第一子文件在内置磁盘的第一存储文件中的起始位置和结束位置,以及每一个加载文件的第二子文件在外置磁盘的第二存储文件中的起始位置和结束位置。由于加载文件有多个,则mybin1文件和mybin2文件中设计读个数据结构,每一个数据结构均存储有对应的一个加载文件的描述信息,主要标注了每一个加载文件分别在mybin1文件的位置信息以及在mybin2文件中的位置信息。Mybin1文件和mybin2文件是一组,存储于mybin1文件的每一个加载文件的第一子文件和存储于mybin2文件中的每一个加载文件的第二子文件才能组成一个完整的加载文件,为了读取每一个加载文件的子文件的方便,在mybin1文件和mybin2文件的头部保留了全部的文件引用列表信息。
通过上述的文件结构的组成设计,能够将每一个加载文件均匀地分布在mybin1文件和mybin2文件中了,这样的文件结构组成设计有利于快速查询读取mybin1中的文件和mybin2中的文件。由于mybin1文件和mybin2文件是分别存储于移动设备的内置磁盘和外置磁盘上,因此,对两个文件同时进行读写的时候比单独放在一个磁盘上的读写速度要快很多。
参见图2,提供了本发明另一个实施例的文件读取方法,包括:S1b,根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;S2,对第一子文件和第二子文件进行合并,组成整个加载文件。
通过以上的实施例,原始文件集中的每一个加载文件均是拆分为两部分分别分布于mybin1文件和mybin2文件中,需要读取整个加载文件时,需要分别在mybin1文件和mybin2文件中读取加载文件的两个部分,然后对这两个部分进行组装合并成整个加载文件,本实施例主要描述文件的读取过程和合并过程。
根据读取文件的文件名称,也就是加载文件的文件名称,在内置磁盘的第一存储文件中读取与文件名称对应的加载文件的第一子文件,以及根据读取文件的文件名称,在外置磁盘的第二存储文件中读取与文件名称对应的加载文件的第二子文件。然后对两个子文件进行组装合并,组成完整的加载文件。
在本发明的一个实施例中,文件读取方法还包括:为内置磁盘的第一存储文件设置第一游标,以及为外置磁盘的第二存储文件设置第二游标。所述步骤S1b进一步包括:根据读取文件的文件名称,通过移动第一游标在第一存储文件的文件头部信息中查询与所述文件名称对应的加载文件的第一子文件在第一存储文件中的起始地址和结束地址,以及通过移动第二游标在第二存储文件的文件头部信息中查询与所述文件名称对应的加载文件的第二子文件在第二存储文件中的起始地址和结束地址。
为了快速在内置磁盘和外置磁盘中读取对应的文件,本实施例设置了两个游标a和b,其中,游标a指向mybin1文件,游标b指向mybin2文件,根据需要读取文件的文件名称,移动游标a在内置磁盘的mybin1文件的头部信息中查询与文件名称对应的加载文件的第一子文件在mybin1文件中的起始地址和结束地址,这样就查询到了需要的文件在内置磁盘的第一存储文件中的描述信息。同样的,移动游标b在外置磁盘的mybin2文件的头部信息中查询与文件名称对应的加载文件的第二子文件在mybin2文件中的起始地址和结束地址,这样就查询到了需要的文件在外置磁盘的第二存储文件中的描述信息。
在本发明另一个实施例中,所述步骤S1b进一步包括:为第一存储文件设置第一文件指针以及位第二存储文件设置第二文件指针。通过第一文件指针从加载文件的第一子文件在第一存储文件中的起始地址移动到结束地址,读取加载文件的第一子文件;以及通过第二文件指针从加载文件的第二子文件在第二存储文件中的起始地址移动到结束地址,读取加载文件的第二子文件。
上述实施例分别在mybin1文件和mybin2文件的头部信息中查询到需要读取的文件的描述信息,为了能够从mybin1文件和mybin2文件中分别读取对应的文件,本实施例为mybin1文件和mybin2文件分别定义一个文件指针,比如,为mybin1文件定义文件指针e,为mybin2文件定义文件指针f。将文件指针e移动到需要读取的文件在mybin1文件中的起始地址,然后读取mybin1文件中的文件内容,直到文件指针e移动到需要读取的文件在mybin1文件中的结束地址,将读取的第一子文件存储到缓存buffer1中。同样的,使用文件指针f从mybin2中读取需要读取的文件的第二子文件,将第二子文件存储到缓存buffer2中。
接下来需要组装合并缓存buffer1和缓存buffer2中的文件内容,直接通过连接的方式将缓存buffer1中的内容和缓存buffer2中的内容合并组成一个整体的文件,合并后的文件即为需要读取的文件。通过读取和合并的操作,并可以分别从内置磁盘和外置磁盘中读取需要读取的文件内容了,相比从一个磁盘中读取文件的速度要快很多。
参见图3,提供了本发明又一个实施例的文件存储系统,包括拆分模块31、存储模块32和定义模块33。
拆分模块31,用于将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘。
存储模块32,用于将两个子文件分别存储于内置磁盘和外置磁盘。
第一定义模块33,用于在内置磁盘中定义第一存储文件以及在外置磁盘中定义第二存储文件;存储模块22,具体用于分别将每一个加载文件的第一子文件存储于内置磁盘的第一存储文件中,以及将每一个加载文件的第二子文件存储于外置磁盘的第二存储文件中。
其中,所述第一存储文件和所述第二存储文件均由文件头部部分和文件内容部分组成,所述第一存储文件的文件头部部分和所述第二存储文件的文件头部部分相同,所述第一存储文件的文件内容部分和所述第二存储文件的文件内容部分不同。
所述文件头部部分包括多个数据结构,所述数据结构的数量与加载文件的数量相同,每一个数据结构存储如下信息:每一个加载文件的名称+每一个加载文件的第一子文件在第一存储文件中的起始地址+每一个加载文件的第一子文件在第一存储文件中的结束地址+每一个加载文件的第二子文件在第二存储文件中的起始地址+每一个加载文件的第二子文件在第二存储文件中的结束地址。
参见图4,提供了本发明再一个实施例的文件读取系统,包括读取模块41和合并模块42。
读取模块41,用于根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件。
合并模块42,用于对第一子文件和第二子文件进行合并,组成整个加载文件。
参见图5,文件读取系统还包括第二定义模块43、查询模块44和第三定义模块45。
第二定义模块43,用于为内置磁盘的第一存储文件设置第一游标,以及为外置磁盘的第二存储文件设置第二游标。
所述查询模块44,具体用于根据读取文件的文件名称,通过移动第一游标在第一存储文件的文件头部信息中查询与所述文件名称对应的加载文件的第一子文件在第一存储文件中的起始地址和结束地址,以及通过移动第二游标在第二存储文件的文件头部信息中查询与所述文件名称对应的加载文件的第二子文件在第二存储文件中的起始地址和结束地址。
第三定义模块45,用于为第一存储文件设置第一文件指针以及位第二存储文件设置第二文件指针。
所述读取模块41,具体用于通过第一文件指针从加载文件的第一子文件在第一存储文件中的起始地址移动到结束地址,读取加载文件的第一子文件;以及通过第二文件指针从加载文件的第二子文件在第二存储文件中的起始地址移动到结束地址,读取加载文件的第二子文件。
图6示出本申请实施例的文件存储方法的设备结构框图。
参照图6,文件存储方法的设备包括:处理器(processor)601、存储器(memory)602和总线603;其中,所述处理器601和存储器602通过所述总线603完成相互间的通信。
所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;将两个子文件分别存储于内置磁盘和外置磁盘。
本发明公开一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述对应实施例所提供的文件存储方法,例如包括:将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;将两个子文件分别存储于内置磁盘和外置磁盘。
本发明还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述对应实施例所提供的文件存储方法,例如包括:将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;将两个子文件分别存储于内置磁盘和外置磁盘。
图7示出本申请实施例的文件读取方法的设备结构框图。
参照图7,文件读取方法的设备包括:处理器(processor)701、存储器(memory)702和总线703;其中,所述处理器701和存储器702通过所述总线703完成相互间的通信。
所述处理器701用于调用所述存储器702中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;对第一子文件和第二子文件进行合并,组成整个加载文件。
本发明公开一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述对应实施例所提供的文件读取方法,例如包括:根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;对第一子文件和第二子文件进行合并,组成整个加载文件。
本发明还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述对应实施例所提供的文件读取方法,例如包括:根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;对第一子文件和第二子文件进行合并,组成整个加载文件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的文件存储、读取方法的设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
本发明提供了一种文件存储、读取方法及其对应的设备,将整个加载文件进行拆分,将拆分后的子文件分别存储于移动设备的内置磁盘和外置磁盘,然后通过并行读取两个磁盘的内容来达到提高磁盘读取速度的目的。
将加载文件拆分后分别存储于乃至磁盘和外置磁盘中后,设计一套优秀的文件组成格式,对每一个加载文件在内置磁盘和外置磁盘的位置信息进行描述,方便在内置磁盘和外置磁盘中对各部分文件的读取,最终进行组装合并得到需要读取的整个文件,通过上述的方式可以极大地提高文件在移动设备磁盘的加载速度和读取速度,提高了用户的使用体验。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种文件存储方法,其特征在于,包括:
S1a,将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;
S2a,将两个子文件分别存储于内置磁盘和外置磁盘;
所述步骤S1a进一步包括:
设内置磁盘的读写速度为A1,外置磁盘的读写速度为A2,则每一个加载文件的拆分率n=A1/(A1+A2);
设每一个加载文件的大小为M,每一个加载文件拆分后的第一子文件的大小为B1,第二子文件的大小为B2,则B1=n*M,B2=(1-n)*M;
所述步骤S2a进一步包括:
将每一个加载文件的第一子文件存储于内置磁盘中,以及将每一个加载文件的第二子文件存储于外置磁盘中。
2.如权利要求1所述的文件存储方法,其特征在于,还包括:
在内置磁盘中定义第一存储文件以及在外置磁盘中定义第二存储文件;
分别将每一个加载文件的第一子文件存储于第一存储文件中,以及将每一个加载文件的第二子文件存储于第二存储文件中。
3.如权利要求2所述的文件存储方法,其特征在于,所述第一存储文件和所述第二存储文件均由文件头部部分和文件内容部分组成,所述第一存储文件的文件头部部分和所述第二存储文件的文件头部部分相同,所述第一存储文件的文件内容部分和所述第二存储文件的文件内容部分不同。
4.如权利要求3所述的文件存储方法,其特征在于,所述文件头部部分包括多个数据结构,所述数据结构的数量与加载文件的数量相同,每一个数据结构存储如下信息:
加载文件的名称+加载文件的第一子文件在第一存储文件中的起始地址+加载文件的第一子文件在第一存储文件中的结束地址+加载文件的第二子文件在第二存储文件中的起始地址+加载文件的第二子文件在第二存储文件中的结束地址。
5.一种文件读取方法,其特征在于,包括:
S1b,根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;
S2b,对第一子文件和第二子文件进行合并,组成整个加载文件;
其中,所述第一子文件和所述第二子文件按照权利要求1所述的文件存储方法进行存储。
6.如权利要求5所述的文件读取方法,其特征在于,还包括:
为内置磁盘的第一存储文件设置第一游标,以及为外置磁盘的第二存储文件设置第二游标;
所述步骤S1b进一步包括:
根据读取文件的文件名称,通过移动第一游标在第一存储文件的文件头部信息中查询,与所述文件名称对应的加载文件的第一子文件在第一存储文件中的起始地址和结束地址,以及通过移动第二游标在第二存储文件的文件头部信息中查询,与所述文件名称对应的加载文件的第二子文件在第二存储文件中的起始地址和结束地址。
7.如权利要求6所述的文件读取方法,其特征在于,所述步骤S1b进一步包括:
为第一存储文件设置第一文件指针以及为第二存储文件设置第二文件指针;
通过第一文件指针从加载文件的第一子文件在第一存储文件中的起始地址移动到结束地址,读取加载文件的第一子文件;以及
通过第二文件指针从加载文件的第二子文件在第二存储文件中的起始地址移动到结束地址,读取加载文件的第二子文件。
8.一种文件存储系统,其特征在于,包括:
拆分模块,用于将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件,其中,移动设备磁盘包括内置磁盘和外置磁盘;
存储模块,用于将两个子文件分别存储于内置磁盘和外置磁盘;
其中,所述将原始文件集中的每一个加载文件按照内置磁盘的读写速度和外置磁盘的读写速度拆分为两个子文件包括:
设内置磁盘的读写速度为A1,外置磁盘的读写速度为A2,则每一个加载文件的拆分率n=A1/(A1+A2);
设每一个加载文件的大小为M,每一个加载文件拆分后的第一子文件的大小为B1,第二子文件的大小为B2,则B1=n*M,B2=(1-n)*M;
相应的,所述存储模块具体用于:
将每一个加载文件的第一子文件存储于内置磁盘中,以及将每一个加载文件的第二子文件存储于外置磁盘中。
9.一种文件读取系统,其特征在于,包括:
读取模块,用于根据读取文件的文件名称,分别在内置磁盘中读取与文件名称对应的加载文件的第一子文件,以及在外置磁盘中读取与文件名称对应的加载文件的第二子文件;
合并模块,用于对第一子文件和第二子文件进行合并,组成整个加载文件;
其中,所述第一子文件和所述第二子文件存储于权利要求8所述的文件存储系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710453106.0A CN107391029B (zh) | 2017-06-15 | 2017-06-15 | 一种文件存储、读取方法及其对应的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710453106.0A CN107391029B (zh) | 2017-06-15 | 2017-06-15 | 一种文件存储、读取方法及其对应的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391029A CN107391029A (zh) | 2017-11-24 |
CN107391029B true CN107391029B (zh) | 2020-03-17 |
Family
ID=60333094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710453106.0A Active CN107391029B (zh) | 2017-06-15 | 2017-06-15 | 一种文件存储、读取方法及其对应的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391029B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055511A (zh) * | 2007-05-16 | 2007-10-17 | 华为技术有限公司 | 一种存储阵列系统及其数据操作方法 |
CN101101569A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的自适应控制方法 |
CN101118477A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种提高磁盘数据访问效率的方法 |
CN101699443A (zh) * | 2009-11-04 | 2010-04-28 | 北京东方广视科技有限责任公司 | 一种管理网络文件的方法和装置 |
CN104615594A (zh) * | 2013-11-01 | 2015-05-13 | 阿里巴巴集团控股有限公司 | 一种数据更新方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201431355A (zh) * | 2013-01-25 | 2014-08-01 | Elta Technology Co Ltd | 具有擴充性的影音儲存系統、影音檔案分配裝置及相關的電腦程式產品 |
-
2017
- 2017-06-15 CN CN201710453106.0A patent/CN107391029B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055511A (zh) * | 2007-05-16 | 2007-10-17 | 华为技术有限公司 | 一种存储阵列系统及其数据操作方法 |
CN101101569A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的自适应控制方法 |
CN101118477A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种提高磁盘数据访问效率的方法 |
CN101699443A (zh) * | 2009-11-04 | 2010-04-28 | 北京东方广视科技有限责任公司 | 一种管理网络文件的方法和装置 |
CN104615594A (zh) * | 2013-11-01 | 2015-05-13 | 阿里巴巴集团控股有限公司 | 一种数据更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107391029A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3522042A1 (en) | Method and apparatus for information processing, server and computer readable medium | |
US9329873B2 (en) | Method and device, terminal and computer readable medium for accelerating startup of operating system | |
CN111984597B (zh) | 文件存储方法、装置、设备和介质 | |
CN109614372B (zh) | 一种对象存储、读取方法、装置、及业务服务器 | |
CN103647850A (zh) | 一种分布式版本控制系统的数据处理方法、设备及系统 | |
CN107423425B (zh) | 一种对k/v格式的数据快速存储和查询方法 | |
CN110019063B (zh) | 计算节点数据容灾回放的方法、终端设备及存储介质 | |
CN107423321B (zh) | 适用大批量小文件云存储的方法及其装置 | |
CN114942863A (zh) | 一种级联快照处理方法、装置、设备及存储介质 | |
CN105808451B (zh) | 一种数据缓存方法以及相关装置 | |
CN110795920B (zh) | 一种文档生成方法及设备 | |
CN112328526A (zh) | Io操作方法和装置 | |
CN107391029B (zh) | 一种文件存储、读取方法及其对应的系统 | |
CN115774701B (zh) | 数据共享方法、装置、电子设备及存储介质 | |
CN116610636A (zh) | 一种文件系统的数据处理方法、装置、电子设备及存储介质 | |
CN108804625B (zh) | 一种lsm树的优化方法、装置及计算机设备 | |
CN105701158A (zh) | 一种文件系统读写优化方法及框架 | |
CN116225314A (zh) | 数据写入方法、装置、计算机设备和存储介质 | |
CN104216666A (zh) | 一种管理磁盘数据写入的方法及装置 | |
US11314430B2 (en) | Reading data in sub-blocks using data state information | |
CN109740027B (zh) | 数据交换方法、装置、服务器和存储介质 | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN106777288B (zh) | 一种快速拆分虚拟化磁盘镜像的系统及方法 | |
CN107844405B (zh) | 日志处理方法及装置、服务器 | |
US20120259941A1 (en) | Server and method for the server to access a volume |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |