CN111104097B - 一种数据写入、读取方法及装置 - Google Patents
一种数据写入、读取方法及装置 Download PDFInfo
- Publication number
- CN111104097B CN111104097B CN201911286323.0A CN201911286323A CN111104097B CN 111104097 B CN111104097 B CN 111104097B CN 201911286323 A CN201911286323 A CN 201911286323A CN 111104097 B CN111104097 B CN 111104097B
- Authority
- CN
- China
- Prior art keywords
- data
- type
- target
- target data
- data type
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据写入、读取方法及装置,该方法包括:当接收到针对目标数据的写入指令时,确定目标数据的目标数据类型以及目标数据的目标标识信息;判断目标数据的目标数据类型是否为预设数据类型;若目标数据的目标数据类型为预设数据类型,调用通用数据写方法,将目标数据和与目标标识信息对应的写方法名传入存储空间;若目标数据的目标数据类型为非预设数据类型,将目标数据类型转化为预设数据类型,并调用通用数据写方法,将写方法名和预设数据类型的目标数据传入存储空间。本发明实施例通过在数据写入时明确数据类型,防止读取数据时数据类型设置错误。
Description
技术领域
本发明涉及数据读写技术领域,特别是涉及一种数据写入、读取方法及装置。
背景技术
技术人员在编程过程中,写入数据一般不会标明数据类型,导致计算机在读取数据时,往往需要技术人员手动设置读取数据的数据类型,容易发生设置的读取数据类型与写入数据的类型不同的情况,造成数据错乱甚至软件崩溃。
发明内容
本发明实施例的目的在于提供一种数据写入、读取方法及装置,以实现读取的数据的数据类型与输入的数据的数据类型一致。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种数据写入方法,所述方法包括:
当接收到针对目标数据的写入指令时,确定所述目标数据的目标数据类型以及所述目标数据的目标标识信息;
判断所述目标数据的目标数据类型是否为预设数据类型;
若所述目标数据的目标数据类型为预设数据类型,调用通用数据写方法,将所述目标数据和与所述目标标识信息对应的写方法名传入存储空间;
若所述目标数据的目标数据类型为非预设数据类型,将所述目标数据类型转化为预设数据类型,并调用所述通用数据写方法,将所述写方法名和所述预设数据类型的目标数据传入所述存储空间。
可选的,所述判断所述目标数据的目标数据类型是否为预设数据类型之前,还包括:
生成包含所述目标标识信息和所述目标数据类型的属性信息;
根据所述目标标识信息,获取所述目标标识信息的写方法名和读方法名,并根据所述目标数据类型,获取所述目标数据类型的通用类型写方法和通用类型读方法,其中,所述通用类型写方法用于将所述目标数据由所述目标数据类型转化为所述预设数据类型,所述通用类型读方法用于将所述目标数据由所述预设数据类型转化为所述目标数据类型;
分别将所述写方法名的地址指向所述通用类型写方法,将所述读方法名的地址指向所述通用类型读方法;
分别将所述通用类型写方法指向所述通用数据写方法,将所述通用类型读方法指向通用数据读方法。
在本发明实施的第二方面,提供了一种数据读取方法,所述方法包括:
接收读取指令,其中,所述读取指令包含待读取数据的目标标识信息;
根据预先声明的属性信息,查询与所述目标标识信息对应的目标数据类型,所述属性信息包含各数据的标识信息和数据类型;
通过通用数据读方法,从存储空间中读取所述目标标识信息对应的数据,并判断读取的数据类型是否与所述目标数据类型相同,其中所述数据为写入所述存储空间的预设数据类型的数据;
若所述读取的数据类型与所述目标数据类型不相同,则将读取的数据转化为所述目标数据类型的数据,得到所述目标数据。
可选的,所述存储空间为持久化容器;所述通过通用数据读方法,从存储空间中读取所述目标标识信息对应的数据,包括:
确定与所述目标标识信息对应的读方法名;
通过通用数据读方法将所述读方法名传入所述持久化容器;
从所述持久化容器中读取所述目标标识信息对应的数据。
可选的,所述通过通用数据读方法将所述读方法名传入所述持久化容器,包括:
通过名称转换方法将所述读方法名转化成容器读方法名;
通过所述通用数据读方法,将所述容器读方法名传入持久化容器。
可选的,所述将读取的数据转化为所述目标数据类型的数据,包括:
通过与所述目标数据类型对应的通用类型读方法,将读取的数据转化为所述目标数据类型的数据。
在本发明实施的第三方面,提供了一种数据写入装置,所述装置包括:
确定模块,用于当接收到针对目标数据的写入指令时,确定所述目标数据的目标数据类型以及所述目标数据的目标标识信息;
判断模块,用于判断所述目标数据的目标数据类型是否为预设数据类型;
第一传入模块,用于若所述目标数据的目标数据类型为预设数据类型,调用通用数据写方法,将所述目标数据和与所述目标标识信息对应的写方法名传入存储空间;
第二传入模块,用于若所述目标数据的目标数据类型为非预设数据类型,将所述目标数据类型转化为预设数据类型,并调用所述通用数据写方法,将所述写方法名和所述预设数据类型的目标数据传入所述存储空间。
在本发明实施的第四方面,提供了一种数据读取装置,所述装置包括:
接收模块,用于接收读取指令,其中,所述读取指令包含待读取数据的目标标识信息;
查询模块,用于根据预先声明的属性信息,查询与所述目标标识信息对应的目标数据类型,所述属性信息包含各数据的标识信息和数据类型;
读取模块,用于通过通用数据读方法,从存储空间中读取所述目标标识信息对应的数据,并判断读取的数据类型是否与所述目标数据类型相同,其中所述数据为写入所述存储空间的预设数据类型的数据;
转化模块,用于若所述读取的数据类型与所述目标数据类型不相同,则将读取的数据转化为所述目标数据类型的数据,得到所述目标数据。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的一种数据写入、读取方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的一种数据写入、读取方法。
本发明实施例提供的一种数据写入、读取方法,通过在写入数据时明确目标数据的目标数据类型,使得终端设备在读取数据时自动获取目标数据类型,从而避免人工设置的读取数据类型与写入数据的类型不同;另外,本发明实施例将目标数据存入持久化容器,可以使目标数据长久的保存在持久化容器中,防止目标数据丢失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中一种数据写入的方法示意图;
图2为本发明实施例中生成属性信息方法的示意图;
图3为本发明实施例中一种数据读取的方法示意图;
图4为本发明实施例中从存储空间读取数据的方法示意图;
图5为本发明实施例中将读方法名传入持久化容器的方法示意图;
图6为本发明实施例中一种数据写入方法的流程示意图;
图7为本发明实施例中一种数据读取方法的流程示意图;
图8为本发明实施例中一种数据写入方法的装置示意图;
图9为本发明实施例中一种数据读取方法的装置示意图;
图10为本发明实施例中终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供了一种数据写入方法,应用于终端设备,终端设备用于获取待写入的目标数据的数据类型,并将预设数据类型的目标数据存储在持久化容器中。
下面将以终端设备为例,结合具体实施方式,对本发明实施例提供的一种数据写入方法进行详细的描述:终端设备根据针对目标数据的写入指令,确定目标数据的目标数据类型以及目标数据的目标标识信息,并根据目标标识信息,获取目标标识信息的写方法名和读方法名,根据目标数据类型,获取目标数据类型的通用类型写方法和通用类型读方法,终端设备若判断目标数据的目标数据类型为预设数据类型,则调用通用数据写方法,将目标数据和与目标标识信息对应的写方法名传入存储空间;终端设备若判断目标数据的目标数据类型为非预设数据类型,则将目标数据类型转化为预设数据类型,并调用通用数据写方法,将写方法名和预设数据类型的目标数据传入存储空间。
一种数据写入方法,该方法为终端设备将写方法名和预设数据类型的目标数据传入存储空间,如图1所示,
步骤101:当接收到针对目标数据的写入指令时,确定目标数据的目标数据类型以及目标数据的目标标识信息。
在本发明实施例中,当终端设备接收到针对目标数据的写入指令时,根据目标数据可以确定目标数据的目标标识信息和目标数据类型,其中,写入指令可以是响应于用户操作生成的,也可以是在终端设备的***运行过程中,由***程序触发生成的。
例如,终端设备接受到写入指令,写入指令的目标数据为“YES”,那么终端设备可以根据“YES”,确定目标标识信息为audioSwitchOpen,数据类型为布尔类型。
步骤102:判断目标数据的目标数据类型是否为预设数据类型。
在本发明实施例中,预设数据类型为OC类型,目标数据类型为OC类型或非OC类型,为了使传入持久化容器中的目标数据的数据类型一致,那么终端设备需要判断目标数据的目标数据类型是否为预设数据类型。
步骤103:若目标数据的目标数据类型为预设数据类型,调用通用数据写方法,将目标数据和与目标标识信息对应的写方法名传入存储空间。
在本发明实施例中,若目标数据的目标数据类型为预设数据类型,则终端设备不需要再对目标数据类型进行类型转换,终端设备通过名称转化方法将写方法名解析为目标标识信息,并将目标标识信息映射为容器写方法名,通过通用数据写方法将容器写方法名和目标数据传入持久化容器。
举例来说,若目标数据为YES,写方法名为“setAudioSwitchOpen”,目标数据类型为“OC”,则终端设备将“YES”封装为“OC_YES”,名称转化方法将“setAudioSwitchOpen”解析为“audioSwitchOpen”,然后将“audioSwitchOpen”映射为“com.reader.audioSwitchOpen”,通过通用数据写方法将“com.reader.audioSwitchOpen”和“OC_YES”传入持久化容器。
步骤104:若目标数据的目标数据类型为非预设数据类型,将目标数据类型转化为预设数据类型,并调用通用数据写方法,将写方法名和预设数据类型的目标数据传入存储空间。
在本发明实施例中,若目标数据的目标数据类型为非预设数据类型,则终端设备通过通用类型写方法将目标数据类型转化为预设数据类型,并通过名称转化方法将写方法名解析为目标标识信息,然后将目标标识信息映射为容器写方法名,最后将容器写方法名和预设数据类型的目标数据传入持久化容器。
举例来说,若目标数据为YES, 写方法名为“setAudioSwitchOpen”,目标数据类型为“BOOL”,则终端设备通过通用类型写方法将目标数据类型由BOOL类型转化为OC类型,并将“YES”封装为“OC_YES”,名称转化方法将“setAudioSwitchOpen”解析为“audioSwitchOpen”,然后将“audioSwitchOpen”映射为“com.reader.audioSwitchOpen”,通过通用数据写方法将“com.reader.audioSwitchOpen”和“OC_YES”传入持久化容器。
可选的,在判断目标数据的目标数据类型是否为预设数据类型之前,终端设备生成属性信息,如图2所示:
步骤201:生成包含目标标识信息和目标数据类型的属性信息。
在本发明实施例中,终端设备采用+load方法生成一个属性信息,该属性信息包含所有数据的标识信息和数据类型,那么该属性信息也包含目标标识信息和目标数据类型。
步骤202:根据目标标识信息,获取目标标识信息的写方法名和读方法名,并根据目标数据类型,获取目标数据类型的通用类型写方法和通用类型读方法,其中,通用类型写方法用于将目标数据由目标数据类型转化为预设数据类型,通用类型读方法用于将目标数据由预设数据类型转化为目标数据类型。
在本发明实施例中,终端设备根据目标标识信息,获取目标标识信息的写方法名和读方法名,在一种实现方式中,将目标标识信息的名称前加set,再将目标标识信息的名称的首字母大写,即得到写方法名;目标标识信息的名称与读方法名的名称相同。如目标标识信息的名称为audioSwitchOpen,则写方法名为setAudioSwitchOpen,读方法名为audioSwitchOpen。本发明对于读方法名和写方法名的具体获取过程不做具体限制。
在本发明实施例中,终端设备根据目标数据类型,获取目标数据类型的通用类型写方法和通用类型读方法,具体为,将目标数据类型转换成固定的格式,即可得到相应的通用类型写方法和通用类型读方法,如目标数据类型为BOOL,则通用类型写方法为generalBoolSetter,通用类型读方法为generalBoolGetter;如目标数据类型为Int,则通用类型写方法为generalIntlSetter,通用类型读方法为generalIntGetter。
其中,通用类型写方法用于在数据写入过程中,若目标数据的目标数据类型为非预设数据类型,通用类型写方法将目标数据由目标数据类型转化为预设数据类型,通用类型读方法用于在数据读取过程中,若读取的数据类型与目标数据类型不相同,将目标数据由预设数据类型转化为目标数据类型。
步骤203:分别将写方法名的地址指向通用类型写方法,将读方法名的地址指向通用类型读方法。
在本发明实施例中,终端设备将写方法名的地址指向通用类型写方法,将读方法名的地址指向通用类型读方法,以便于采用写方法名可以调用通用类型写方法,采用读方法名可以调用通用类型读方法。在本发明实施例中,采用runtime的method_setImplementation方法,将写方法名的地址指向通用类型写方法,将读方法名的地址指向通用类型读方法,本发明对具体方法不作限制。
步骤204:分别将通用类型写方法指向通用数据写方法,将通用类型读方法指向通用数据读方法。
在本发明实施例中,终端设备分别将通用类型写方法指向通用数据写方法,将通用类型读方法指向通用数据读方法,使得传入持久化容器中的目标数据的数据类型一致,避免针对不同数据类型的目标数据建立不同的规则,提高效率和准确度。
本申请还提供了一种数据读取方法,具体步骤如图3所示:
步骤301:接收读取指令,其中,读取指令包含待读取数据的目标标识信息。
在本发明实施例中,终端设备在将目标数据写入存储空间后,可以接收读取指令,其中,读取指令包含待读取数据的目标标识信息。其中,读取指令可以是响应于用户操作生成的,也可以是在终端设备的***运行过程中,由***程序触发生成的。
步骤302:根据预先声明的属性信息,查询与目标标识信息对应的目标数据类型,属性信息包含各数据的标识信息和数据类型。
在本发明实施例中,属性信息包含各数据的标识信息,具体的,每一个数据都对应有一个属性信息,属性信息的声明过程在前文中已注明。
终端设备可以根据读取指令中的目标标识信息,查询到包含该目标标识信息的属性信息,进而从该属性信息中获取与目标标识信息对应的目标数据类型,其中,在本发明实施例中,存储空间可以为持久化容器。
在本发明实施例中,数据类型可以包括OC(Objective-C)类型和非OC类型,其中,非OC类型包括但不限于布尔类型,整数类型等,OC类型包括字符串类型,NSObject类型等。目标标识信息对应的目标数据类型可能是OC类型,也可能是非OC类型。
步骤303:通过通用数据读方法,从存储空间中读取目标标识信息对应的数据,并判断读取的数据类型是否与目标数据类型相同,其中数据为写入存储空间的预设数据类型的数据。
在本发明实施例中,终端设备中可以存储有通用数据读方法,其中,通用数据读方法适用于OC类型的数据。终端设备通过预设的通用数据读方法,从存储空间中读取与目标标识信息对应的数据,其中数据为写入存储空间的预设数据类型的数据。具体的,从存储空间中读取的数据的数据类型均为OC类型,由于目标数据的目标数据类型不一定是OC类型,因此需要终端设备判断读取的数据类型是否与目标数据类型相同。
步骤304:若读取的数据类型与目标数据类型不相同,则将读取的数据转化为目标数据类型的数据,得到目标数据。
在本发明实施例中,由于终端设备读取的数据类型为OC类型,若目标数据类型为非OC类型,读取的数据类型与目标数据类型不相同,则终端设备通过通用类型读方法将读取的OC类型的数据转化为目标数据类型的数据,并得到目标数据类型的目标数据;若目标数据类型为OC类型,则读取的数据类型与目标数据类型相同,则终端设备读取得到目标数据类型的目标数据。
举例来说,若目标数据类型为布尔类型,属于非OC类型,那么目标数据类型和读取的OC类型是不同的,则终端将读取的OC类型的数据转化为布尔类型的数据,得到布尔类型的目标数据。
可选的,从存储空间中读取目标标识信息对应的数据,如图4所示,包括:
步骤401:确定与目标标识信息对应的读方法名。
在本发明实施例中,终端设备通过目标数据的目标数据类型,可以得到与目标数据类型对应的通用类型读方法。在通用类型读方法中,终端设备通过_cmd(command,命令提示符)取得目标标识信息对应的读方法名,其中读方法名和目标标识信息相同,举例来说,目标标识信息为audioSwitchOpen,则读方法名也为audioSwitchOpen。
步骤402:通过通用数据读方法将读方法名传入持久化容器。
在本发明实施例中,终端设备通过通用数据读方法将读方法名传入存储空间,具体的,在本发明实施例中,存储空间为持久化容器。存储空间还可以是NSUserDefaults、数据库、文件等容器,本发明对存储空间不做具体限定。
步骤403:从持久化容器中读取目标标识信息对应的数据。
在本发明实施例中,终端设备将与目标标识信息对应的读方法名传入持久化容器后,调用预设的通用数据读方法,从持久化容器中读取目标标识信息对应的数据。
可选的,通过名称转换方法将读方法名转换,并将转换后的读方法名传入持久化容器中,如图5所示,包括:
步骤501:通过名称转换方法将读方法名转化成容器读方法名。
在本发明实施例中,在将读方法名传入持久化容器过程中,终端设备通过名称转换方法,将读方法名解析为目标标识信息,并根据预先设定好的映射信息,将目标标识信息映射为容器读方法名。
在本发明实施例中,读方法名的名称较短,持久化容器中的各读方法名之间容易产生重复的名称,将名称较短的读方法名转化为名称较长的容器读方法名可以减少重复概率,避免数据混乱,另外,持久化容器在升级之后,原有的读方法名已经不适应升级后的持久化容器,因此将读方法名转化为容器读方法名也可以提高读方法名的适应性。
举例来说,读方法名可以为audioSwitchOpen,终端设备通过名称转换方法将读方法名解析为audioSwitchOpen,然后根据预先设定好的映射信息,名称转换方法将audioSwitchOpen映射为com.reader.audioSwitchOpen。
步骤502:通过通用数据读方法,将容器读方法名传入持久化容器。
在本发明实施例中,终端设备调用通用数据读方法,将转化后的容器读方法名传入持久化容器中。一般的,读取数据需要调用已预先写入的目标数据,目标数据保存在终端设备的内存中,一旦终端设备断电或者意外关机,内存中的目标数据则会消失,因此需要将目标数据存储在持久化容器中,保障目标数据的长久性。
可选的,若读取的数据类型与目标数据类型不相同,通过与目标数据类型对应的通用类型读方法,将读取的数据转化为目标数据类型的数据。
在本发明实施例中,目标数据所对应的目标数据类型为OC类或非OC类,但终端设备从持久化容器中读取的数据类型是OC类型,为了使目标数据保留原有的数据类型,终端设备需要判断读取的数据类型和目标数据类型是否相同,若终端设备判断到读取的数据类型与目标数据类型不相同,需要将OC类的数据转化为非OC类的数据,由于通用类型读方法与目标数据类型对应,因此,该转化过程在通用类型读方法中完成;若终端设备判断到读取的数据类型与目标数据类型相同,则获取从持久化容器中得到的数据。
如图6所示,本发明实施例还提供了一种数据写入方法示例的流程图。
步骤601:生成属性信息。
在本发明实施例中,终端设备通过+load方法生成属性信息,其中,属性信息包含各数据的标识信息和数据类型,如属性信息包括目标数据“YES”的目标标识信息“audioSwitchOpen”和目标数据类型“BOOL”。
步骤602:根据目标数据,确定目标数据的目标标识信息和目标数据类型。
在本发明实施例中,当终端设备接收到写入指令时,根据期望的目标数据“YES”,确定“YES”所对应的目标标识信息“audioSwitchOpen”和目标数据类型“BOOL”。
步骤603:根据目标标识信息,获取目标标识信息的写方法名和读方法名,并根据目标数据类型,获取目标数据类型的通用类型写方法和通用类型读方法。
在本发明实施例中,终端设备根据目标标识信息“audioSwitchOpen”,获取“audioSwitchOpen”的写方法名“setAudioSwitchOpen”和读方法名“audioSwitchOpen”,其中,目标标识信息和读方法名相同,目标标识信息与写方法名不同;并根据目标数据类型“BOOL”,获取目标数据类型“BOOL”的通用类型写方法“generalBoolSetter”和通用类型读方法“generalBoolGetter”。
步骤604:分别将写方法名的地址指向通用类型写方法,将读方法名的地址指向通用类型读方法。
在本发明实施例中,终端设备通过runtime的method_setImplementation方法,分别将写方法名“setAudioSwitchOpen”的地址指向通用类型写方法“generalBoolSetter”,将读方法名“audioSwitchOpen”的地址指向通用类型读方法“generalBoolGetter”。
步骤605:分别将通用类型写方法指向通用数据写方法,将通用类型读方法指向通用数据读方法。
在本发明实施例中,终端设备分别将通用类型写方法“generalBoolSetter”指向通用数据写方法“generalSetter”,将通用类型读方法“generalBoolGetter”指向通用数据读方法“generalGetter”,使得传入持久化容器中的目标数据的数据类型一致,避免针对不同数据类型的目标数据建立不同的规则,提高效率和准确度。
步骤606:判断目标数据的目标数据类型是否为预设数据类型,若是,则进入步骤607,如否,则进入步骤608。
在本发明实施例中,终端设备要将目标数据类型的目标数据传入持久化容器中,因此需要判断目标数据的目标数据类型是否为预设数据类型“OC”,若是,则进入步骤607,如否,则进入步骤608。
步骤607:调用预设的通用数据写方法,将写方法名和目标数据传入持久化容器。
在本发明实施例中,名称转化方法将写方法名“setAudioSwitchOpen”转化为容器写方法名“com.reader.audioSwitchOpen”,通过通用数据写方法“generalSetter”将“com.reader.audioSwitchOpen”和目标数据“OC_YES”传入持久化容器。
步骤608:将目标数据类型转化为预设数据类型,并调用预设的通用数据写方法,将写方法名和预设数据类型的目标数据传入持久化容器。
在本发明实施例中,终端设备将目标数据类型“BOOL”转化为预设数据类型“OC”,通过名称转换方法将写方法名“setAudioSwitchOpen”转化为容器写方法名“com.reader.audioSwitchOpen”,并通过通用数据写方法将容器写方法名“com.reader.audioSwitchOpen”和预设数据类型的目标数据“OC_YES”传入持久化容器。
如图7所示,本发明实施例还提供了一种数据读取方法的流程图。
步骤701:将读方法名通过通用数据读方法传入持久化容器。
在本发明实施例中,终端设备通过名称转换方法将读方法名“audioSwitchOpen”转化为容器读方法名“com.reader.audioSwitchOpen”,并通过通用数据读方法“generalGetter”将容器读方法名“com.reader.audioSwitchOpen”传入持久化容器。
步骤702:从持久化容器中读取目标标识信息对应的数据。
在本发明实施例中,终端设备调用预设的通用数据读方法“generalGetter”,从持久化容器中读取目标标识信息对应的数据“OC_YES”。
步骤703:判断读取的数据类型是否与目标数据类型相同,若否,则进入步骤704,若是,则进入步骤705。
在本发明实施例中,终端设备判断读取的OC类型的数据“OC_YES”是否与目标数据类型相同,若否,则进入步骤704,若是,则进入步骤705。
步骤704:将读取的数据类型转化为目标数据类型。
在本发明实施例中,终端设备若判断读取的OC类型的数据“OC_YES”与目标数据类型不相同,则将读取的OC类的数据“OC_YES”转化为目标数据类型,即非OC类的数据“BOOL_YES”。
步骤705:获取目标数据类型的目标数据。
在本发明实施例中,终端设备若判断读取的OC类型的数据“OC_YES”与目标数据类型相同,则获取目标数据“OC_YES”,其中,目标数据的目标数据类型与写入的目标数据类型相同。
本发明实施例提供的一种数据写入、读取方法,通过在写入数据时明确目标数据的目标数据类型,使得终端设备在读取数据时自动获取目标数据类型,从而避免人工设置的读取数据类型与写入数据的类型不同;另外,本发明实施例将目标数据存入持久化容器,可以使目标数据长久的保存在持久化容器中,防止目标数据丢失。
本发明实施例还提供了一种数据写入装置,如图8所示,装置包括:
确定模块801,用于当接收到针对目标数据的写入指令时,确定目标数据的目标数据类型以及目标数据的目标标识信息;
判断模块802,用于判断目标数据的目标数据类型是否为预设数据类型;
第一传入模块803,用于若目标数据的目标数据类型为预设数据类型,调用通用数据写方法,将目标数据和与目标标识信息对应的写方法名传入存储空间;
第二传入模块804,用于若目标数据的目标数据类型为非预设数据类型,将目标数据类型转化为预设数据类型,并调用通用数据写方法,将写方法名和预设数据类型的目标数据传入存储空间。
可选的,装置还包括:
生成模块,生成包含目标标识信息和目标数据类型的属性信息;
获取模块,用于根据目标标识信息,获取目标标识信息的写方法名和读方法名,并根据目标数据类型,获取目标数据类型的通用类型写方法和通用类型读方法,其中,通用类型写方法用于将目标数据由目标数据类型转化为预设数据类型,通用类型读方法用于将目标数据由预设数据类型转化为目标数据类型;
第一指向模块,用于分别将写方法名的地址指向通用类型写方法,将读方法名的地址指向通用类型读方法;
第二指向模块,用于分别将通用类型写方法指向通用数据写方法,将通用类型读方法指向通用数据读方法。
本发明实施例还提供了一种数据读取装置,如图9所示,装置包括:
接收模块901,用于接收读取指令,其中,读取指令包含待读取数据的目标标识信息;
查询模块902,用于根据预先声明的属性信息,查询与目标标识信息对应的目标数据类型,属性信息包含各数据的标识信息和数据类型;
读取模块903,用于通过通用数据读方法,从存储空间中读取目标标识信息对应的数据,并判断读取的数据类型是否与目标数据类型相同,其中数据为写入存储空间的预设数据类型的数据;
转化模块904,用于若读取的数据类型与目标数据类型不相同,则将读取的数据转化为目标数据类型的数据,得到目标数据。
可选的,存储空间为持久化容器;读取模块903包括:
确定单元,用于确定与目标标识信息对应的读方法名;
传入单元,用于通过通用数据读方法将读方法名传入持久化容器;
读取单元,用于从持久化容器中读取目标标识信息对应的数据。
可选的,传入单元包括:
转化子单元,用于通过名称转换方法将读方法名转化成容器读方法名;
传入子单元,用于通过通用数据读方法,将容器读方法名传入持久化容器。
可选的,转化模块904包括:
转化单元,用于通过与目标数据类型对应的通用类型读方法,将读取的数据转化为目标数据类型的数据。
本发明实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现上述步骤
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种数据写入、读取方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种数据写入、读取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种数据写入方法,其特征在于,所述方法包括:
当接收到针对目标数据的写入指令时,确定所述目标数据的目标数据类型以及所述目标数据的目标标识信息;
判断所述目标数据的目标数据类型是否为预设数据类型;
若所述目标数据的目标数据类型为预设数据类型,调用通用数据写方法,将所述目标数据和与所述目标标识信息对应的写方法名传入存储空间,其中,所述存储空间为持久化容器;
若所述目标数据的目标数据类型为非预设数据类型,将所述目标数据类型转化为预设数据类型,并调用所述通用数据写方法,将所述写方法名和所述预设数据类型的目标数据传入所述存储空间;
其中,所述判断所述目标数据的目标数据类型是否为预设数据类型之前,还包括:
生成包含所述目标标识信息和所述目标数据类型的属性信息;
根据所述目标标识信息,获取所述目标标识信息的写方法名和读方法名,并根据所述目标数据类型,获取所述目标数据类型的通用类型写方法和通用类型读方法,其中,所述通用类型写方法用于将所述目标数据由所述目标数据类型转化为所述预设数据类型,所述通用类型读方法用于将所述目标数据由所述预设数据类型转化为所述目标数据类型;
分别将所述写方法名的地址指向所述通用类型写方法,将所述读方法名的地址指向所述通用类型读方法;
分别将所述通用类型写方法指向所述通用数据写方法,将所述通用类型读方法指向通用数据读方法。
2.一种基于权利要求1所述的数据写入方法在数据写入之后的数据读取方法,其特征在于,所述方法包括:
接收读取指令,其中,所述读取指令包含待读取数据的目标标识信息;
根据预先声明的属性信息,查询与所述目标标识信息对应的目标数据类型,所述属性信息包含各数据的标识信息和数据类型;
通过通用数据读方法,从存储空间中读取所述目标标识信息对应的数据,并判断读取的数据类型是否与所述目标数据类型相同,其中所述数据为写入所述存储空间的预设数据类型的数据,所述存储空间为持久化容器;
若所述读取的数据类型与所述目标数据类型不相同,则将读取的数据转化为所述目标数据类型的数据,得到所述目标数据。
3.根据权利要求2所述的数据读取方法,其特征在于,所述存储空间为持久化容器;所述通过通用数据读方法,从存储空间中读取所述目标标识信息对应的数据,包括:
确定与所述目标标识信息对应的读方法名;
通过通用数据读方法将所述读方法名传入所述持久化容器;
从所述持久化容器中读取所述目标标识信息对应的数据。
4.根据权利要求3所述的数据读取方法,其特征在于,所述通过通用数据读方法将所述读方法名传入所述持久化容器,包括:
通过名称转换方法将所述读方法名转化成容器读方法名;
通过所述通用数据读方法,将所述容器读方法名传入持久化容器。
5.根据权利要求2所述的数据读取方法,其特征在于,所述将读取的数据转化为所述目标数据类型的数据,包括:
通过与所述目标数据类型对应的通用类型读方法,将读取的数据转化为所述目标数据类型的数据。
6.一种数据写入装置,其特征在于,所述装置包括:
确定模块,用于当接收到针对目标数据的写入指令时,确定所述目标数据的目标数据类型以及所述目标数据的目标标识信息;
判断模块,用于判断所述目标数据的目标数据类型是否为预设数据类型;
第一传入模块,用于若所述目标数据的目标数据类型为预设数据类型,调用通用数据写方法,将所述目标数据和与所述目标标识信息对应的写方法名传入存储空间,其中,所述存储空间为持久化容器;
第二传入模块,用于若所述目标数据的目标数据类型为非预设数据类型,将所述目标数据类型转化为预设数据类型,并调用所述通用数据写方法,将所述写方法名和所述预设数据类型的目标数据传入所述存储空间;
其中,所述装置还用于:
生成包含所述目标标识信息和所述目标数据类型的属性信息;
根据所述目标标识信息,获取所述目标标识信息的写方法名和读方法名,并根据所述目标数据类型,获取所述目标数据类型的通用类型写方法和通用类型读方法,其中,所述通用类型写方法用于将所述目标数据由所述目标数据类型转化为所述预设数据类型,所述通用类型读方法用于将所述目标数据由所述预设数据类型转化为所述目标数据类型;
分别将所述写方法名的地址指向所述通用类型写方法,将所述读方法名的地址指向所述通用类型读方法;
分别将所述通用类型写方法指向所述通用数据写方法,将所述通用类型读方法指向通用数据读方法。
7.一种基于权利要求6所述的数据写入装置在数据写入之后的数据读取装置,其特征在于,所述装置包括:
接收模块,用于接收读取指令,其中,所述读取指令包含待读取数据的目标标识信息;
查询模块,用于根据预先声明的属性信息,查询与所述目标标识信息对应的目标数据类型,所述属性信息包含各数据的标识信息和数据类型;
读取模块,用于通过通用数据读方法,从存储空间中读取所述目标标识信息对应的数据,并判断读取的数据类型是否与所述目标数据类型相同,其中所述数据为写入所述存储空间的预设数据类型的数据,所述存储空间为持久化容器;
转化模块,用于若所述读取的数据类型与所述目标数据类型不相同,则将读取的数据转化为所述目标数据类型的数据,得到所述目标数据。
8.一种终端,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911286323.0A CN111104097B (zh) | 2019-12-13 | 2019-12-13 | 一种数据写入、读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911286323.0A CN111104097B (zh) | 2019-12-13 | 2019-12-13 | 一种数据写入、读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104097A CN111104097A (zh) | 2020-05-05 |
CN111104097B true CN111104097B (zh) | 2023-06-30 |
Family
ID=70423218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911286323.0A Active CN111104097B (zh) | 2019-12-13 | 2019-12-13 | 一种数据写入、读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104097B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361351A (en) * | 1990-09-21 | 1994-11-01 | Hewlett-Packard Company | System and method for supporting run-time data type identification of objects within a computer program |
CN104766027A (zh) * | 2015-03-25 | 2015-07-08 | 深圳市金立通信设备有限公司 | 一种数据访问方法 |
WO2015176531A1 (zh) * | 2014-05-21 | 2015-11-26 | 中兴通讯股份有限公司 | 终端数据写入、读取的方法及装置 |
CN105786819A (zh) * | 2014-12-18 | 2016-07-20 | 广州华多网络科技有限公司 | 一种数据操作方法及装置 |
CN107967121A (zh) * | 2017-10-25 | 2018-04-27 | 华为技术有限公司 | 数据写入方法和存储设备 |
CN109684307A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN110096541A (zh) * | 2019-04-28 | 2019-08-06 | 新华三大数据技术有限公司 | 一种数据库间的数据交换方法及装置 |
CN110555073A (zh) * | 2019-09-10 | 2019-12-10 | 政采云有限公司 | 一种数据处理方法、装置及电子设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4395178B2 (ja) * | 2007-05-29 | 2010-01-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンテンツ処理システム、方法及びプログラム |
WO2016041191A1 (zh) * | 2014-09-19 | 2016-03-24 | 华为技术有限公司 | 读写数据的方法、装置、存储设备和计算机*** |
-
2019
- 2019-12-13 CN CN201911286323.0A patent/CN111104097B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361351A (en) * | 1990-09-21 | 1994-11-01 | Hewlett-Packard Company | System and method for supporting run-time data type identification of objects within a computer program |
WO2015176531A1 (zh) * | 2014-05-21 | 2015-11-26 | 中兴通讯股份有限公司 | 终端数据写入、读取的方法及装置 |
CN105786819A (zh) * | 2014-12-18 | 2016-07-20 | 广州华多网络科技有限公司 | 一种数据操作方法及装置 |
CN104766027A (zh) * | 2015-03-25 | 2015-07-08 | 深圳市金立通信设备有限公司 | 一种数据访问方法 |
CN107967121A (zh) * | 2017-10-25 | 2018-04-27 | 华为技术有限公司 | 数据写入方法和存储设备 |
CN109684307A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN110096541A (zh) * | 2019-04-28 | 2019-08-06 | 新华三大数据技术有限公司 | 一种数据库间的数据交换方法及装置 |
CN110555073A (zh) * | 2019-09-10 | 2019-12-10 | 政采云有限公司 | 一种数据处理方法、装置及电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
王广红 ; 黄连生 ; 高格 ; 傅鹏 ; 何诗英 ; 王泽京 ; .EAST极向场电源的数据存储及读取方法.强激光与粒子束.2019,(05),全文. * |
陆政 ; 范长军 ; 江云飞 ; .基于OpenSSD的闪存转换算法优化.计算机***应用.2018,(05),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111104097A (zh) | 2020-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290806A (zh) | 应用程序接口的调用方法、装置、计算机设备及存储介质 | |
US11507718B1 (en) | Chip verification system and verification method therefor | |
CN111061468B (zh) | 一种映射方法及装置 | |
CN111104097B (zh) | 一种数据写入、读取方法及装置 | |
CN113779452B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110442636B (zh) | 一种数据的读写方法、装置及数据读写设备 | |
CN113011848A (zh) | 一种接入审批服务的方法、装置、设备及存储介质 | |
CN112000589A (zh) | 一种数据写入方法、数据读取方法、装置及电子设备 | |
CN116996601A (zh) | 报文格式的转换方法、装置、电子设备及存储介质 | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
CN116580804A (zh) | Ofd文件关联储存dicom数据的方法 | |
CN102880669A (zh) | 一种基于文件的业务处理方法和装置 | |
CN114547164A (zh) | 一种导出测试数据的方法及相关装置 | |
CN109254855B (zh) | 一种参数传输协议的注册方法、装置及电子设备 | |
CN111510483B (zh) | 芯片测试中不同网络域之间的配置同步***、方法及装置 | |
CN114547094A (zh) | 一种数据查询的方法、装置及电子设备 | |
CN110442352B (zh) | 一种dsp的代码下载方法和装置 | |
US20150309788A1 (en) | Function module modularizing method in data distribution service and modularizing apparatus thereof | |
CN111078308B (zh) | 类的自动加载方法、装置、电子设备及存储介质 | |
CN112650682B (zh) | 页面测试处理方法、装置、电子设备及可读存储介质 | |
AU776882B2 (en) | Generating optimized computer data field conversion routines | |
CN116775526B (zh) | 一种扩展装置及电子设备 | |
CN115278649B (zh) | 基于机器学习的电话号码获取方法、设备、***及介质 | |
CN113204946B (zh) | 数据控制方法、装置、设备及存储介质 | |
CN116882331A (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 |