CN115098733B - 一种移动终端数据读取方法、装置及移动终端 - Google Patents
一种移动终端数据读取方法、装置及移动终端 Download PDFInfo
- Publication number
- CN115098733B CN115098733B CN202210654404.7A CN202210654404A CN115098733B CN 115098733 B CN115098733 B CN 115098733B CN 202210654404 A CN202210654404 A CN 202210654404A CN 115098733 B CN115098733 B CN 115098733B
- Authority
- CN
- China
- Prior art keywords
- data
- pointer
- head pointer
- tail pointer
- tail
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种移动终端数据读取方法,包括:S1,获取数据的头部指针和尾部指针;S2,计算头部指针和尾部指针之间的数据条数;S3,根据数据条数,读取数据。本发明通过在读写数据时,根据数据的头部指针和尾部指针,对数据进行读取和写入,读写数据时只需要移动头部指针和尾部指针,就可以读写预定长度的数据,读写完成后,更新头部指针和尾部指针,从而提高数据的读写的效率,且本发明能够保证数据读写在时间上的时效性和时序性,即使数据由于储存空间有限不能全部写入时,在读取时也不会造成数据的紊乱,提高了移动终端存储数据的时序性和时效性,提升了移动终端的使用效率。
Description
技术领域
本发明属于数据存储技术领域,具体涉及一种移动终端数据读取方法、装置及移动终端。
背景技术
随着科技的发展,移动终端已成为现代生活中必不可少的工具,然而,为了满足移动终端的轻便性要求,移动终端的数据存储容量就受到了限制,如果移动终端的存储容量用完后,就无法再写入数据,导致读取时的数据可能不是移动终端实际最新需要写入的数据,此种方法会影响移动终端存储的数据的时序性和时效性,影响了移动终端的使用效率。
因此,需要一种方法,能够提高移动终端数据读写时的时序性和时效性,提升移动终端的使用效率。
发明内容
为解决上述背景技术中提出的问题,本发明提供了一种移动终端数据读取方法、装置和移动终端,能够提高移动终端数据读写时的时序性和时效性,提升移动终端的使用效率。
为实现上述目的,本发明的第一方面,提供了一种移动终端数据读取方法,包括:
S1,获取数据的头部指针和尾部指针;
其中,在步骤S1之前包括:
S11,获取数据的当前头部指针和当前尾部指针,根据当前尾部指针开始写入数据;
S12,根据此次写入的数据更新尾部指针;
根据以下公式更新尾部指针:
Tn=Tn-1+Size×Write_num
其中,Tn是尾部指针;
Tn-1是当前尾部指针,n=1,2,......n;
Size是单位数据字节数;
Write_num是写入的数据条数。
S2,计算头部指针和尾部指针之间的数据条数;
S3,根据数据条数,读取数据。
作为上述技术方案的进一步描述:所述步骤S12,根据此次写入的数据更新尾部指针,还包括:
当Tn-Hm-1=MAX×Size时,同时根据以下公式更新头部指针:
Hn=Hm-1+Size×Write_num
其中,Hn是写入头部指针,n=1,2,......n;
Tn是尾部指针;
Hm-1是当前头部指针,m=1,2,......m;
Size是单位数据字节数;
Write_num是写入的数据条数。
作为上述技术方案的进一步描述:所述步骤S2,计算头部指针和尾部指针之间的数据条数,包括:
步骤S21,当Hm-1<Tn时,根据以下公式计算头部指针和尾部指针之间的数据条数,
步骤S22,当Hm-1>Tn时,根据以下公式计算头部指针和尾部指针之间的数据条数,
其中,num是头部指针和尾部指针之间的数据条数;
Tn是尾部指针,n=1,2,......n;
Hm-1是当前头部指针,m=0,1,2,......m;
Size是单位数据字节数;
MAX是最大可存储数据条数。
作为上述技术方案的进一步描述:所述步骤S3,根据数据条数,读取数据,包括:
步骤S31,头部指针和尾部指针之间的数据条数不大于最大一次读写数据条数;
步骤S32,读取全部头部指针和尾部指针之间的数据;
步骤S33,更新头部指针;
步骤S34,头部指针与尾部指针重合,将头部指针和尾部指针均赋值为0;
步骤S35,更新头部指针和尾部指针。
作为上述技术方案的进一步描述:所述步骤S33,更新头部指针,包括:
步骤S331,根据以下公式更新头部指针:
Hm=Hm-1+Size×Read_num
其中,Hm是头部指针;
Hm-1是当前头部指针,m=0,1,2,......m;
Size是单位数据字节数;
Read_num是读取的数据条数。
本发明的第二方面,提供了一种移动终端数据读取装置,包括:
写入模块,用于获取数据的当前头部指针和当前尾部指针,根据当前尾部指针开始写入数据;
写入更新模块,用于写入时更新尾部指针,此模块包括:根据以下公式更新尾部指针:
Tn=Tn-1+Size×Write_num
其中,Tn是尾部指针;
Tn-1是当前尾部指针,n=1,2,......n;
Size是单位数据字节数;
Write_num是写入的数据条数;
获取模块,用于获取数据的头部指针和尾部指针;
计算模块,用于计算头部指针和尾部指针之间的数据条数;
存储模块,用于读取数据。
作为上述技术方案的进一步描述:所述计算模块,包括:
当Hm-1<Tn时,根据以下公式计算头部指针和尾部指针之间的数据条数,
当Hm-1>Tn时,根据以下公式计算头部指针和尾部指针之间的数据条数,
其中,num是头部指针和尾部指针之间的数据条数;
Tn是尾部指针,n=1,2,......n;;
Hm是当前头部指针,m=1,2,......m;
Size是单位数据字节数;
MAX是最大可存储数据条数。
本发明的第三方面,提供了一种移动终端,其存储有指令,该指令被处理器执行时实现如上所述移动终端数据读取方法的步骤。
与现有技术相比,本发明的有益效果是:
本发明通过在读写数据时,根据数据的头部指针和尾部指针,对数据进行读取和写入,读写数据时只需要移动头部指针和尾部指针,就可以读写预定长度的数据,读写完成后,更新头部指针和尾部指针,从而提高数据的读写的效率,且本发明能够保证数据读写在时间上的时效性和时序性,即使数据由于储存空间有限不能全部写入时,在读取时也不会造成数据的紊乱,提高了移动终端存储数据的时序性和时效性,提升了移动终端的使用效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提出的一种移动终端数据读取方法的第一实施例流程图;
图2为本发明提出的一种移动终端数据读取方法的第二实施例流程图;
图3为本发明提出的一种移动终端数据读取方法的步骤S3流程图;
图4为本发明提出的一种移动终端数据读取装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了帮助理解本发明的技术方案,将本发明中涉及的名词解释如下:
H,头部指针:数据开头的位置,即数据开头在第多少个字节处,例如,数据开头在第10个字节处,则H=10,在本发明中,H的数值为单位数据字节数的整数倍数,倍数不小于0。
T,尾部指针:数据结束的位置,即数据结束在第多少个字节处,例如,数据结束在第1000个字节处,则T=1000,在本发明中,T的数值为单位数据字节数的整数倍数,倍数不小于0。
Size,单位数据字节数:单个数据包含的参数(如经度、纬度、高程、速度、方向、时间等)对应的字节数。例如:设定经度、纬度等参数占4个字节,高程、速度、方向等参数占2个字节,时间参数占6个字节,如果单个数据包含了经度、纬度、高程、速度、方向、时间共6个参数(比如位置数据),则该数据的单位数据字节数为20(即4×2+2×3+6=20),如果数据还包含了报警信息等参数,则单位数字字节数更多,在本发明中,数据是指单位数据字节数一致的数据(比如统一为位置数据)。
hum,头部指针和尾部指针之间的数据条数,是指当前存储了多少条单位数据,其与单位数据字节数的乘积即为即为当前存储的数据字节数。
MAX,最大可存储数据条数:可以根据移动终端的存储容量来确定,由于移动终端可能会同时用于存储多种类型的数据,则由分配给该数据的存储空间来确定,此数值=分配给该数据的存储空间÷单位数据字节数。例如,分配给本数据的存储空间为10M,单位数据字节数为20,则最大可存储数据条数为:500。
Write_num,写入的数据条数:此次写入的单位数据条数,其与单位数据字节数的乘积即为此次写入的数据字节数。
Read_num,读取的数据条数:此次读取的单位数据条数,其与单位数据字节数的乘积即为此次读取的数据字节数。
Read_MAX,最大一次读写数据条数:可以根据最大可存储数据条数来设定,该数值不大于最大可存储数据条数MAX。
本发明的第一方面,提供一种移动终端数据读取方法:
请参阅图1,包括:
S1,获取数据的头部指针和尾部指针。
参阅图2,在此步骤之前,还包括:
步骤S11,获取数据的当前头部指针和当前尾部指针,根据当前尾部指针开始写入数据。
具体的,数据的尾部指针,即数据结束的位置,数据的头部指针,是指数据开头的位置,尾部指针和头部指针,在读取和写入数据时会被更新和记录。一般情况下,在写入数据时,从数据当前结束的位置(即尾部指针)接着写入,写入完成后更新尾部指针,在读取数据的时候,从数据的当前头部指针开始读取,读取完成后更新头部指针。在读取数据时,当头部指针与尾部指针重合,即可表示头部指针与尾部指针之间的数据已全部读取完,此时,就可以将尾部指针和头部指针重新设为初始值,这样在读取和写入数据的时候,不需要做额外的判断步骤,就可以按数据写入的时序来读取,即先写入数据的先读取,后写入的数据后读取,即使数据进行了覆盖写入,也不会造成数据读取与写入由于时序不同造成的紊乱,有效提升存储空间的使用效率,以及数据的时序性。
步骤S12,根据此次写入的数据更新尾部指针。
进一步的,此步骤包括:
根据以下公式更新尾部指针:
Tn=Tn-1+Size×Write_num
其中,Tn是尾部指针;
Tn-1是当前尾部指针,即在步骤S11中获取的当前尾部指针;
Size是单位数据字节数;
Write_num是写入的数据条数;
n是数据写入的次数,n=1,2,......n。
在一实施例中,当n=1时,设定Tn-1=0。
具体的,写入数据会导致尾部指针后移(增大),由于移动终端的存储容量有限以及实际情况的需要,可能不是一次将所有数据全部写入完,此时就需要记录前次数据写入完后的尾部指针,以便于下一次接着写,这样在写数据时,不论分多少次写入数据,数据写入的先后顺序都不会发生紊乱。
在一实施例中,在此步骤中,还包括:
步骤S121,获取当前待写入的数据条数。
在此步骤中,当前待写入的数据条数可以直接得到,比如,在写入位置数据时,设定间隔10秒写入一条位置数据,当更新的时间间隔为5分钟时,则需要写入30条位置数据。
在一实施例中,可以预设单次写入的数据条数。
步骤S122,当(Tn-1+Size×Write_num)-(Size×MAX)≤0时,即当前待写入的数据所需储存空间不大于设定的储存空间的大小时,一次性写入全部待写入的数据。
步骤S123,当(Tn-1+Size×Write_num)-(Size×MAX)>0时,即当前待写入的数据所需储存空间大于设定的储存空间的大小时,以最大一次读写数据条数为单位对当前待写入的数据按时序进行拆分,重复步骤S121至步骤S123,直至当前待写入的数据全部写入。
其中,Tn-1是当前尾部指针,n=1,2,......n,n是数据写入的次数;Size是单位数据字节数;Write_num是写入的数据条数;MAX是最大可存储数据条数。
在一实施例中,当写入的数据条数等于最大可存储数据条数时,即Tn-Hm-1=MAX×Size时,头部指针和尾部指针的位置会重合,此时,如果没有读取数据,则在继续写入数据时,需要保持头部指针和尾部指针重合的状态,即需要同时移动尾部指针和头部指针,保持头部指针和尾部指针之间的数据条数为最大可存储数据条数,直至数据被读取,此时,需同时根据以下公式更新头部指针:
Hn=Hm-1+Size×Write_num
其中,Hn是写入头部指针;
Tn是尾部指针;
Hm-1是当前头部指针,是步骤S11中获取的头部指针;
Size是单位数据字节数;
Write_num是写入的数据条数;
n是数据写入的次数,n=1,2,......n;
m是数据读取的次数,m=0,1,2,......m。
在一实施例中,当数据读取的次数为0,即m=0时,Hm-1=0。
这样设置,使得在发生无法及时读取数据时,也不会影响到数据写入和读取的时序,且写入的数据始终保持为实际最新写入的数据,以及可以最大程度的保存可供读取的数据。
这样设置可以解决移动终端长期未恢复网络连接无法向服务器上传数据,移动终端的存储空间满了后无法再继续写入数据,导致重新恢复网络连接后,移动终端上传的数据不是实际需要最新写入的数据而造成的数据误差的问题。
步骤S124,数据写入成功后,更新尾部指针。
在一实施例中,在数据第一次被写入时,尾部指针的初始值设定为0,即在n=1时,Tn-1设定为0。
在一实施例中,当Tn-Hm-1=MAX×Size时,同时更新头部指针。
在一实施例中,在步骤S1中,获取的头部指针可以是步骤S11中的当前头部指针Hm-1,获取的尾部指针是步骤S12中的尾部指针Tn。
在另一实施例中,当Tn-Hm-1=MAX×Size时,由于在写入数据时会同时更新尾部指针和头部指针,因此在步骤S1中获取的头部指针是步骤S12中的写入头部指针Hn,获取的尾部指针是步骤S12中的尾部指针Tn。
S2,计算头部指针和尾部指针之间的数据条数。
进一步的,此步骤还包括:
步骤S21,当头部指针在尾部指针之前时,即Hm-1<Tn时,根据以下公式计算头部指针和尾部指针之间的数据条数:
步骤S22,当头部指针在尾部指针之后时,即Hm>Tn时,根据以下公式计算头部指针和尾部指针之间的数据条数:
其中,num是头部指针和尾部指针之间的数据条数;
Tn是尾部指针;
Hm-1是当前头部指针;
Size是单位数据字节数;
MAX是最大可存储数据条数;
m是数据读取的次数,m=0,1,2,......m;
n是数据写入的次数,n=1,2,......n。
在一实施例中,当Hm-1=Tn时,表示头部指针与尾部指针之间没有数据。
在一实施例中,当num=MAX时,表示头部指针与尾部指针之间数据量达到最大可存储量,读取数据时,依然是从头部指针开始读取数据,至尾部指针结束读取数据,此时,根据以下公式计算头部指针与尾部指针之间的数据条数:
其中,num是头部指针和尾部指针之间的数据条数;
Hn是写入头部指针;
Tn是尾部指针;
Size是单位数据字节数;
n是数据写入的次数,n=1,2,......n。
S3,根据数据条数,读取数据。
请参阅图3,此步骤还包括:
步骤S31,头部指针和尾部指针之间的数据条数不大于最大一次读写数据条数。
步骤S32,读取全部头部指针和尾部指针之间的数据。
在一实施例中,当头部指针和尾部指针之间的数据条数大于最大一次读写数据条数时,将头部指针和尾部指针之间的数据条数按最大一次读写数据条数为单位进行拆分,然后重复步骤S31至步骤S32,直至将数据全部读取完成。
步骤S33,更新头部指针。
进一步的,在此步骤中,还包括:
根据以下公式更新头部指针:
Hm=Hm-1+Size×Read_num
其中,Hm是头部指针;
Hm-1是当前头部指针,是指上一次更新的头部指针;
Size是单位数据字节数;
Read_num是读取的数据条数;
m是数据读取的次数,m=0,1,2,......m。
在一实施例中,头部指针的初始值设置为0,即m=1时,Hm-1=0。
在另一实施例中,当m=1时,Hm-1=Hn,其中Hn是写入头部指针。
进一步的,当头部指针与尾部指针之间的数据条数等于最大可存储数据条数时,即Tn-Hn=MAX×Size时,根据以下公式更新头部指针:
Hm=Hn+Size×Read_num
其中,Hm是头部指针;
Hn是写入头部指针;
Size是单位数据字节数;
Read_num是读取的数据条数;
n是数据写入的次数,n=1,2,......n;
m是数据读取的次数,m=0,1,2,......m。
步骤S34,头部指针与尾部指针重合,将头部指针和尾部指针均赋值为0。
具体的,当数据全部读取完成时,头部指针和尾部指针会重合,如果头部指针和尾部指针没有重合,则表示数据没有全部读取完成,在此情况下,可以重复步骤S31至步骤S33,直至头部指针与尾部指针重合。
步骤S35,更新头部指针和尾部指针。
此时,头部指针和尾部指针的值均为0,即Hm=0,Tn=0,其中,Hm是头部指针,m=0,1,2,......m,Tn是尾部指针,n=1,2,......n。
在一实施例中,头部指针和尾部指针赋值为0后,m和n的值也归0,即下一次的写入和读取分别设为第一次写入和第一次读取,这样,使得头部指针和尾部指针的计算更简洁高效。
此步骤还包括:将读取的数据存储至指定位置或传输至另一存储设备(比如服务器)中。
请参阅图4,本发明的第二方面,提供了一种移动终端数据读取装置,包括:
获取模块41,用于获取数据的头部指针和尾部指针。
进一步的,还包括:写入模块,用于获取数据的当前头部指针和当前尾部指针,根据当前尾部指针开始写入数据;
进一步的,还包括:写入更新模块,用于写入时更新尾部指针。
此模块包括:
根据以下公式更新尾部指针:
Tn=Tn-1+Size×Write_num
其中,Tn是尾部指针;
Tn-1是当前尾部指针,n=1,2,......n;
Size是单位数据字节数;
Write_num是写入的数据条数。
在一实施例中,还包括:当Tn-Hm-1=MAX×Size时,同时根据以下公式更新头部指针:
Hn=Hm-1+Size×Write_num
其中,Hn是写入头部指针,n=1,2,......n;
Tn是尾部指针;
Hm-1是当前头部指针,m=0,1,2,......m;
Size是单位数据字节数;
Write_num是写入的数据条数。
计算模块42,用于计算头部指针和尾部指针之间的数据条数。
具体的,在此模块中,还包括:
当头部指针在尾部指针之前时,根据以下公式计算头部指针和尾部指针之间的数据条数,
当头部指针在尾部指针之后时,根据以下公式计算头部指针和尾部指针之间的数据条数,
当Hm-1=Tn时,表示头部指针与尾部指针之间没有数据。
当num=MAX时,表示头部指针与尾部指针之间数据量达到最大可存储量,读取数据时,依然是从头部指针开始读取数据,至尾部指针结束读取数据,此时,根据以下公式计算头部指针与尾部指针之间的数据条数:
其中,num是头部指针和尾部指针之间的数据条数;
Hn是写入头部指针;
Tn是尾部指针;
Size是单位数据字节数;
MAX是最大可存储数据条数;
m是数据读取的次数,m=0,1,2,......m;
n是数据写入的次数,n=1,2,......n。
存储模块43,用于读取数据。
进一步的,还包括:
读取模块,用于读取全部头部指针和尾部指针之间的数据;
进一步的,此模块还包括:当头部指针和尾部指针之间的数据条数不大于最大一次读写数据条数时;读取全部头部指针和尾部指针之间的数据。
进一步的,此模块还包括:当头部指针和尾部指针之间的数据条数大于最大一次读写数据条数时,将数据按最大一次读写数据条数为单位进行拆分后读取,直至将数据全部读取完成。
进一步的,还包括:更新模块,用于更新头部指针和尾部指针。
进一步的,在此模块中,还包括:
根据以下公式更新头部指针:
Hm=Hm-1+Size×Read_num
其中,Hm是头部指针;
Hm-1是当前头部指针;
Size是单位数据字节数;
Read_num是读取的数据条数;
m是数据读取的次数,m=0,1,2,......m。
进一步的,当头部指针与尾部指针之间的数据条数等于最大可存储数据条数时,即Tn-Hn=MAX×Size时,根据以下公式更新头部指针:
Hm=Hn+Size×Read_num
其中,Hm是头部指针;
Hn是写入头部指针;
Size是单位数据字节数;
Read_num是读取的数据条数;
n是数据写入的次数,n=1,2,......n;
m是数据读取的次数,m=0,1,2,......m。
具体的,当数据全部读取完成时,头部指针和尾部指针会重合,如果头部指针和尾部指针没有重合,则表示数据没有全部读取完成,需要再次读取数据,直至头部指针与尾部指针重合。
进一步的,还包括:确定模块,当头部指针与尾部指针重合,将头部指针和尾部指针均赋值为0。
进一步的,还包括:传输模块,用于将读取数据存储或传输至另一存储设备(比如服务器)中。
本发明的第三方面,提供了一种移动终端,其存储有指令,该指令被处理器执行时实现如上所述移动终端数据读取方法的步骤。
本发明通过在读写数据时,根据数据的头部指针和尾部指针,对文件进行读取和写入,读写数据时只需要移动头部指针和尾部指针,就可以读写预定长度的数据,每读写一次,更新一次头部指针和尾部指针,从而提高数据的读写的效率,且本发明能够保证数据读写在时间上的时效性和时序性,即使数据由于储存空间有限不能全部写入时,在读取时也不会造成数据的紊乱,提高了移动终端存储数据的时序性和时效性,提升了移动终端的使用效率。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述***的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述无线终端中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的***/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的***/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,***或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述设置为分离部件说明的单元可以是或者也可以不是物理上分开的,设置为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并设置为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或***、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (7)
1.一种移动终端数据读取方法,其特征在于,包括:
S1,获取数据的头部指针和尾部指针,
其中,步骤S1之前包括:
S11,获取数据的当前头部指针和当前尾部指针,根据当前尾部指针开始写入数据;
S12,根据此次写入的数据更新尾部指针,包括,根据以下公式更新尾部指针:
Tn=Tn-1+Size×Write_num
其中,Tn是尾部指针;
Tn-1是当前尾部指针,n=1,2,......n;
Size是单位数据字节数;
Write_num是写入的数据条数;
还包括:当写入的数据条数等于最大可存储数据条数时,即Tn-Hm-1=MAX×Size时,头部指针和尾部指针的位置会重合,此时,如果没有读取数据,则在继续写入数据时,需要保持头部指针和尾部指针重合的状态,即需要同时移动尾部指针和头部指针,保持头部指针和尾部指针之间的数据条数为最大可存储数据条数,直至数据被读取,此时,需同时根据以下公式更新头部指针:
Hn=Hm-1+Size×Write_num
其中,Hn是写入头部指针,n=1,2,......n;
Hm-1是当前头部指针,m=0,1,2,......m;
Size是单位数据字节数;
Write_num是写入的数据条数;
S2,计算头部指针和尾部指针之间的数据条数;
S3,根据数据条数,读取数据。
3.根据权利要求1所述的一种移动终端数据读取方法,其特征在于,所述步骤S3,根据数据条数,读取数据,包括:
步骤S31,头部指针和尾部指针之间的数据条数不大于最大一次读写数据条数;
步骤S32,读取全部头部指针和尾部指针之间的数据;
步骤S33,更新头部指针;
步骤S34,头部指针与尾部指针重合,将头部指针和尾部指针均赋值为0;
步骤S35,更新头部指针和尾部指针。
4.根据权利要求3所述的一种移动终端数据读取方法,其特征在于,所述步骤S33,更新头部指针,包括:
步骤S331,根据以下公式更新头部指针:
Hm=Hm-1+Size×Read_num
其中,Hm是头部指针;
Hm-1是当前头部指针,m=0,1,2,......m;
Size是单位数据字节数;
Read_num是读取的数据条数。
5.一种移动终端数据读取装置,其特征在于,包括:
写入模块,用于获取数据的当前头部指针和当前尾部指针,根据当前尾部指针开始写入数据;
写入更新模块,用于写入时更新尾部指针,此模块包括:根据以下公式更新尾部指针:
Tn=Tn-1+Size×Write_num
其中,Tn是尾部指针;
Tn-1是当前尾部指针,n=1,2,......n;
Size是单位数据字节数;
Write_num是写入的数据条数;
还包括:当写入的数据条数等于最大可存储数据条数时,即Tn-Hm-1=MAX×Size时,头部指针和尾部指针的位置会重合,此时,如果没有读取数据,则在继续写入数据时,需要保持头部指针和尾部指针重合的状态,即需要同时移动尾部指针和头部指针,保持头部指针和尾部指针之间的数据条数为最大可存储数据条数,直至数据被读取,此时,需同时根据以下公式更新头部指针:
Hn=Hm-1+Size×Write_num
其中,Hn是写入头部指针,n=1,2,......n;
Hm-1是当前头部指针,m=0,1,2,......m;
Size是单位数据字节数;
Write_num是写入的数据条数;
获取模块,用于获取数据的头部指针和尾部指针;
计算模块,用于计算头部指针和尾部指针之间的数据条数;
存储模块,用于读取数据。
7.一种移动终端,其特征在于,其存储有指令,该指令被处理器执行时实现权利要求1至4任意一项所述移动终端数据读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210654404.7A CN115098733B (zh) | 2022-06-10 | 2022-06-10 | 一种移动终端数据读取方法、装置及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210654404.7A CN115098733B (zh) | 2022-06-10 | 2022-06-10 | 一种移动终端数据读取方法、装置及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115098733A CN115098733A (zh) | 2022-09-23 |
CN115098733B true CN115098733B (zh) | 2023-04-07 |
Family
ID=83290765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210654404.7A Active CN115098733B (zh) | 2022-06-10 | 2022-06-10 | 一种移动终端数据读取方法、装置及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098733B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112235206A (zh) * | 2019-12-20 | 2021-01-15 | 青岛鼎信通讯股份有限公司 | 一种基于单片机的环形缓冲队列数据接收机制 |
US10969996B1 (en) * | 2019-02-06 | 2021-04-06 | Marvell Israel (M.I.S.L) Ltd. | Extendable hardware queue structure and method of operation thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5418973A (en) * | 1992-06-22 | 1995-05-23 | Digital Equipment Corporation | Digital computer system with cache controller coordinating both vector and scalar operations |
CN103514261B (zh) * | 2013-08-13 | 2017-03-15 | 北京华电天益信息科技有限公司 | 一种应用于工业控制***的数据异步存储及访问方法 |
KR20170032502A (ko) * | 2015-09-14 | 2017-03-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 인터럽트 발생 방법 |
CN111625377B (zh) * | 2017-04-01 | 2023-11-28 | 北京忆芯科技有限公司 | 代理及向队列添加条目的方法 |
-
2022
- 2022-06-10 CN CN202210654404.7A patent/CN115098733B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10969996B1 (en) * | 2019-02-06 | 2021-04-06 | Marvell Israel (M.I.S.L) Ltd. | Extendable hardware queue structure and method of operation thereof |
CN112235206A (zh) * | 2019-12-20 | 2021-01-15 | 青岛鼎信通讯股份有限公司 | 一种基于单片机的环形缓冲队列数据接收机制 |
Non-Patent Citations (2)
Title |
---|
张荣华 ; 田泽 ; 韩炜 ; .基于链表的动态存储器管理设计与实现.计算机技术与发展.2011,(07),第250-253页. * |
杨阳 ; .异构双核***中多媒体应用的智能任务控制器.电子科技.2013,(06),第119-121,136页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115098733A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563711B (zh) | 一种基于时间节点的时序数据存储方法 | |
CN109802684B (zh) | 进行数据压缩的方法和装置 | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN108255989B (zh) | 图片存储方法、装置、终端设备及计算机存储介质 | |
CN113553300B (zh) | 文件的处理方法、装置、可读介质和电子设备 | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
CN110059088B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN115098733B (zh) | 一种移动终端数据读取方法、装置及移动终端 | |
CN110955639A (zh) | 一种数据处理方法及装置 | |
CN108304144A (zh) | 数据写入、读取方法与***、数据读写*** | |
CN111797060A (zh) | 一种离线录像方法、装置、设备以及计算机可读存储介质 | |
CN113360095B (zh) | 硬盘数据管理方法、装置、设备及介质 | |
CN112882659B (zh) | 一种信息获得方法、装置、电子设备及存储介质 | |
CN101742632B (zh) | 同步方法、主机、移动终端和同步*** | |
CN115328696A (zh) | 一种数据库中的数据备份方法 | |
CN113448922A (zh) | 数据归档的方法、访问数据的方法及各自的装置 | |
CN109992701B (zh) | 一种链表实现方法、装置、设备及可读存储介质 | |
CN110795408A (zh) | 基于对象存储的数据处理方法、装置、服务器和存储介质 | |
CN110244910A (zh) | 一种数据处理方法和电子设备 | |
CN112527896B (zh) | 区块链账本数据的处理方法、装置、存储介质及电子设备 | |
CN111914529B (zh) | 网页页面的过程录制方法及装置 | |
CN116303278A (zh) | 文件合并方法、文件读取方法、装置、设备及存储介质 | |
CN113596506B (zh) | 直播缓存的性能优化方法、***、电子装置及存储介质 | |
US20060026337A1 (en) | Method increasing seeking speed when accessing file stored in storage device, machine-readable medium thereof, and related apparatus | |
CN117331502A (zh) | 一种基于本地磁盘的车联网非结构化数据存储方法及*** |
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 |