CN109558375B - 一种优化的文件存储方法、存储介质、设备及*** - Google Patents

一种优化的文件存储方法、存储介质、设备及*** Download PDF

Info

Publication number
CN109558375B
CN109558375B CN201811481165.XA CN201811481165A CN109558375B CN 109558375 B CN109558375 B CN 109558375B CN 201811481165 A CN201811481165 A CN 201811481165A CN 109558375 B CN109558375 B CN 109558375B
Authority
CN
China
Prior art keywords
file
memory
path
data
sandbox
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
Application number
CN201811481165.XA
Other languages
English (en)
Other versions
CN109558375A (zh
Inventor
汪刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keqi Caitong (Beijing) Technology Co.,Ltd.
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201811481165.XA priority Critical patent/CN109558375B/zh
Publication of CN109558375A publication Critical patent/CN109558375A/zh
Application granted granted Critical
Publication of CN109558375B publication Critical patent/CN109558375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种优化的文件存储方法、存储介质、设备及***,涉及互联网移动端应用开发领域,该方法包括使用函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;在拼接的路径中创建一文件,并建立内存和所述文件间的映射;待存储数据拼接至内存中,基于内存和文件间的映射,拼接至内存中的待存储数据写入文件中。所述沙盒文件的路径为数组;所述拼接的路径为创建的文件的地址。本发明可以有效提升数据存储时的写入速度。

Description

一种优化的文件存储方法、存储介质、设备及***
技术领域
本发明涉及互联网移动端应用开发领域,具体涉及一种优化的文件存储方法、存储介质、设备及***。
背景技术
随着通信技术的发展,智能手机等移动设备也得到广泛的应用,移动设备中的应用程序在运行的过程中,经常需要进行数据存储,且数据存储在本地。
通常,数据存储在***数据库中,***数据库是一个属性列表,属性列表提供存储有关的偏好设置,偏好设置实际上是基于文件的操作,从而将数据存储到文件中,每次读写文件都有一个文件的读和写操作,而文件的读写过程中是比较消耗性能的,例如一个300kb的文件,10次读取需要50ms,且读取的过程在主线程中进行对硬件的性能消耗也极大。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种优化的文件存储方法、存储介质、设备及***,可以有效提升数据存储时的写入速度。
本发明第一方面提供一种优化的文件存储方法,包括以下步骤:
使用函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
待存储数据拼接至内存中,基于内存和文件间的映射,拼接至内存中的待存储数据写入文件中。
结合第一方面,在第一种可能的实现方式中,
所述沙盒文件的路径为数组;
所述拼接的路径为创建的文件的地址。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述基于获取的路径,在沙盒文件中拼接一个路径,具体包括:
S201:获取路径的数组的第一个元素;
S202:判断所述第一个元素的长度是否大于0,当且仅当第一个元素的长度大于0时,在沙盒文件中拼接一个路径。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述建立内存和所述文件间的映射,具体步骤为:
S301:基于文件的地址,使用open函数打开文件,得到文件打开结果,所述文件打开结果为fd形式的字段;
S302:当文件打开结果的字段大于0时,设置一变量size,所述变量size的大小为一页内存的大小;
S303:将文件打开结果的字段和变量size传给mmap函数,完成内存和文件间映射的建立。
结合第一方面,在第四种可能的实现方式中,当建立内存和所述文件间的映射之后,还包括对文件添加保护操作,所述对文件添加保护操作具体为:使用NSFileManager函数调用defaultManager函数,得到文件管理器,然后将文件存储于文件管理器中。
结合第一方面,在第五种可能的实现方式中,在待存储数据拼接至内存中之前,还包括:
S411:对待存储数据进行二进制转化得到数据NSData;
S412:对数据NSData添加锁lock后保存;
S413:将保存的数据NSData添加到字典dic中。
结合第一方面,在第六种可能的实现方式中,所述待存储数据拼接至内存中,具体步骤为:
S421:使用函数lengthOfBytesUsingEncoding计算字典dic的key的长度;
S422:计算key占用的字节数,计算数据NSData占用的字节数;
S423:当内存剩余空间大于key占用的字节数和数据NSData占用的字节数之和时,将数据NSData拼接至内存中。
本发明第二方面提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
使用函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
待存储数据拼接至内存中,基于内存和文件间的映射,拼接至内存中的待存储数据写入文件中。
本发明第三方面提供一种电子设备,所述电子设备包括:
获取单元,用于基于函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
拼接单元,其用于基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
映射建立单元,其用于在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
写入单元,其用于将待存储数据拼接至内存中,然后基于内存和文件间的映射,将拼接至内存中的待存储数据写入文件中。
本发明第四方面提供一种优化的文件存储***,包括:
获取模块,用于基于函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
拼接模块,其用于基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
映射建立模块,其用于在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
写入模块,其用于将待存储数据拼接至内存中,然后基于内存和文件间的映射,将拼接至内存中的待存储数据写入文件中。
结合第四方面,在第一种可能的实现方式中,
所述沙盒文件的路径为数组;
所述拼接的路径为创建的文件的地址。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述基于获取的路径,在沙盒文件中拼接一个路径,具体包括:
S201:获取路径的数组的第一个元素;
S202:判断所述第一个元素的长度是否大于0,当且仅当第一个元素的长度大于0时,在沙盒文件中拼接一个路径。
结合第四方面的第一种可能的实现方式,在第三种可能的实现方式中,所述建立内存和所述文件间的映射,具体步骤为:
S301:基于文件的地址,使用open函数打开文件,得到文件打开结果,所述文件打开结果为fd形式的字段;
S302:当文件打开结果的字段大于0时,设置一变量size,所述变量size的大小为一页内存的大小;
S303:将文件打开结果的字段和变量size传给mmap函数,完成内存和文件间映射的建立。
结合第四方面,在第四种可能的实现方式中,当建立内存和所述文件间的映射之后,还包括对文件添加保护操作,所述对文件添加保护操作具体为:使用NSFileManager函数调用defaultManager函数,得到文件管理器,然后将文件存储于文件管理器中。
与现有技术相比,本发明的优点在于:获取沙盒文件的路径,然后基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径,并在拼接的路径处创建文件,由于沙盒文件属于磁盘,故创建的文件也属于磁盘,在进行数据存储时,直接操纵内存,将数据存入内存中,后续再根据内存和磁盘间的映射关系,将数据写入磁盘中,由于进行数据存储时直接将数据存入内存中,内存的读写速度是远大于磁盘的,从而可以有效提升数据存储时的写入速度。
附图说明
图1为本发明实施例中一种优化的文件存储方法的流程图;
图2为本发明实施例中一种电子设备的结构示意图。
具体实施方式
本发明实施例提供了一种优化的文件存储方法,适用于iOS操作***,将内存和磁盘建立映射关系,在存储数据时,直接操纵内存,将数据存入内存中,后续再根据内存和磁盘间的映射关系,将数据写入磁盘中,由于操作的是内存,从而可以有效提升数据存储时的写入速度。本发明实施例还提供了相应的存储介质、设备和优化的文件存储***。
以下结合附本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,本发明实施例提供的一种优化的文件存储方法的一实施例包括:
S1:使用函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径。
本发明实施例中,函数NSSearchPathForDirectoriesInDomains为iOS***中用于查找目录的函数,同时返回指定范围内的指定名称的目录的路径集合。沙盒文件机制是iOS***中的一种安全体系,每个iOS程序都有一个独立的文件***(存储空间),而且只能在对应的文件***中进行操作,此区域被称为沙盒,应用必须待在自己的沙盒里,其他应用不能访问该沙盒,所有的非代码文件都要保存在此,例如属性文件plist、文本文件、图像、图标、媒体资源等。
由于每个应用程序只能访问自己的沙盒文件,故本发明实施例的优化的文件存储方法是针对单个应用程序而言,实现单个应用程序运行过程中,数据存储的优化,例如对应用程序A进行数据存储的优化,则本步骤中获取的路径为应用程序A对应沙盒文件的路径。
S2:基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径。即通过获取的路径访问沙盒文件,然后在沙盒文件中拼接出一个路径,即在沙盒文件中指定一处位置,拼接的路径即为后续创建的文件的地址。
S3:在拼接的路径中创建一文件,并建立内存和所述文件间的映射。
本发明实施例中,在拼接的路径中创建文件,为在上述沙盒文件中指定的位置处创建文件,创建的文件地址即为上述拼接的路径。
本发明实施例中,通过建立内存和文件之间的映射关系,使得后续在进行数据存储时,直接先将数据存储于内存中,然后后续设备在空闲时,再基于内存和文件之间的映射关系,将预先存储于内存中的数据存储到文件中,沙盒文件位于磁盘中,文件在沙盒文件中拼接的路径处创建,故创建的文件位于磁盘中,存储于内存中的数据存储到文件中,即将数据存储于磁盘中。
S4:待存储数据拼接至内存中,基于内存和文件间的映射,拼接至内存中的待存储数据写入文件中。拼接至内存中的待存储数据可以在iOS设备空闲或达到定时时间后,写入到文件中。
本发明实施例的优化的文件存储方法,获取沙盒文件的路径,然后基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径,并在拼接的路径处创建文件,由于沙盒文件属于磁盘,故创建的文件也属于磁盘,在进行数据存储时,直接操纵内存,将数据存入内存中,后续再根据内存和磁盘间的映射关系,将数据写入磁盘中,由于进行数据存储时直接将数据存入内存中,内存的读写速度是远大于磁盘的,从而可以有效提升数据存储时的写入速度。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的一种优化的文件存储方法的第一个可选实施例中,基于获取的路径,在沙盒文件中拼接一个路径,具体包括:
S201:获取路径的数组的第一个元素;沙盒文件的路径为数组。获取沙盒文件的路径paths后,即为拿到一个数组,数组的第一个元素为firstPath,paths用于表示文件的路径。
S202:判断所述第一个元素的长度是否大于0,当且仅当第一个元素的长度大于0时,在沙盒文件中拼接一个路径。例如拼接的路径为/user/save.a,则/user/save.a也为后续在该路径处创建的文件的地址。
可选地,在上述一种优化的文件存储方法的第一个可选实施例的基础上,本发明实施例提供的一种优化的文件存储方法的第二个可选实施例中,建立内存和所述文件间的映射,具体步骤为:
S301:基于文件的地址,使用open函数打开文件,得到文件打开结果,所述文件打开结果为fd形式的字段;
S302:当文件打开结果的字段大于0时,设置一变量size,所述变量size的大小为一页内存的大小;变量size的大小为1024的倍数。
S303:将文件打开结果的字段和变量size传给mmap函数,完成内存和文件间映射的建立。mmap函数用于将一个文件或者其它对象映射进内存。通过mmap函数,本步骤中将文件和内存间建立映射关系。实现内存和文件间的映射后,若映射成功则可以得到内存中的指针point,当指针point中含有值时,则说明内存和文件间映射成功。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的一种优化的文件存储方法的第三个可选实施例中,当建立内存和所述文件间的映射之后,还包括对文件添加保护操作,对文件添加保护操作具体为:使用NSFileManager函数调用defaultManager函数,得到文件管理器,然后将文件存储于文件管理器中。NSFileManager是iOS***中的文件管理类。defaultManager代表默认管理器。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的一种优化的文件存储方法的第四个可选实施例中,在待存储数据拼接至内存中之前,还包括:
S411:对待存储数据进行二进制转化得到数据NSData;
S412:对数据NSData添加锁lock后保存;
S413:将保存的数据NSData添加到字典dic中。字典由key-value组成(即键-值),数据NSData作为字典的value,然后相应的会生成key。
待存储数据拼接至内存中,具体步骤为:
S421:使用函数lengthOfBytesUsingEncoding计算字典dic的key的长度;函数lengthOfBytesUsingEncoding用于根据给定的编码返回字符串的字节数,故可以通过函数lengthOfBytesUsingEncoding进行字典key的长度的计算。
S422:计算key占用的字节数,计算数据NSData占用的字节数;
S423:当内存剩余空间大于key占用的字节数和数据NSData占用的字节数之和时,将数据NSData拼接至内存中。当内存剩余空间大于key占用的字节数和数据NSData占用的字节数之和时,说明内存中有足够的空间来装载待存储数据。
上述将数据NSData传递到字典中,传递到字典的数据再进行编码,编码之后便可判断数据的长度,判断数据能否写到内存中,数据NSData写入内存的过程如下:
先对参数,即对数据长度进行校验所述校验是对参数进行判空,拿到内存当前空间的总长度,减去当前占用的位置,得到还剩余的空间值,如果剩余的空间值大于待写入的数据长度,则说明空间够,边可进行写入操作,写入是通过memcpy函数,将当前的字节拷贝到内存中,拷贝到内存中需要3个参数,分别为:参数1,内存的起始地址加上当前存储的位置,得到一个开始写入内存中的起始位置;参数2,写入的字节数加上一个偏移值参数;3:,写入到内存中的文件的长度。memcpy函数为内存拷贝函数。
本发明实施例提供的一种存储介质的一实施例包括:该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
使用函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
待存储数据拼接至内存中,基于内存和文件间的映射,拼接至内存中的待存储数据写入文件中。
可选地,在上述存储介质实施例的基础上,本发明实施例提供的一种存储介质的第一个可选实施例中,存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可选地,在上述存储介质的实施例及第一个可选实施例的基础上,本发明实施例提供的一种存储介质的第二个可选实施例中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可选地,在上述存储介质的实施例及第一、第二个可选实施例的基础上,本发明实施例提供的一种存储介质的第三个可选实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
参见图2所示,本发明实施例提供的一种电子设备的一实施例包括:
获取单元,用于基于函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
拼接单元,其用于基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
映射建立单元,其用于在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
写入单元,其用于将待存储数据拼接至内存中,然后基于内存和文件间的映射,将拼接至内存中的待存储数据写入文件中。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的一种电子设备的第一个可选实施例中,基于获取的路径,在沙盒文件中拼接一个路径,具体包括:
S201:获取路径的数组的第一个元素;沙盒文件的路径为数组。获取沙盒文件的路径paths后,即为拿到一个数组,数组的第一个元素为firstPath,paths用于表示文件的路径。
S202:判断所述第一个元素的长度是否大于0,当且仅当第一个元素的长度大于0时,在沙盒文件中拼接一个路径。例如拼接的路径为/user/save.a,则/user/save.a也为后续在该路径处创建的文件的地址。
可选地,在上述一种电子设备的第一个可选实施例的基础上,本发明实施例提供的一种电子设备的第二个可选实施例中,建立内存和所述文件间的映射,具体步骤为:
S301:基于文件的地址,使用open函数打开文件,得到文件打开结果,所述文件打开结果为fd形式的字段;
S302:当文件打开结果的字段大于0时,设置一变量size,所述变量size的大小为一页内存的大小;变量size的大小为1024的倍数。
S303:将文件打开结果的字段和变量size传给mmap函数,完成内存和文件间映射的建立。
本发明实施例提供的一种优化的文件存储***的一实施例包括:
获取模块,用于基于函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
拼接模块,其用于基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
映射建立模块,其用于在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
写入模块,其用于将待存储数据拼接至内存中,然后基于内存和文件间的映射,将拼接至内存中的待存储数据写入文件中。
可选地,在上述一种优化的文件存储***对应的实施例的基础上,本发明实施例提供的一种优化的文件存储***的第一个可选实施例中,当建立内存和所述文件间的映射之后,还包括对文件添加保护操作,对文件添加保护操作具体为:使用NSFileManager函数调用defaultManager函数,得到文件管理器,然后将文件存储于文件管理器中。NSFileManager是iOS***中的文件管理类。defaultManager代表默认管理器。
可选地,在上述一种优化的文件存储***对应的实施例的基础上,本发明实施例提供的一种优化的文件存储***的第二个可选实施例中,在待存储数据拼接至内存中之前,还包括:
S411:对待存储数据进行二进制转化得到数据NSData;
S412:对数据NSData添加锁lock后保存;
S413:将保存的数据NSData添加到字典dic中。字典由key-value组成(即键-值),数据NSData作为字典的value,然后相应的会生成key。
本发明实施例的优化的文件存储***,获取沙盒文件的路径,然后基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径,并在拼接的路径处创建文件,由于沙盒文件属于磁盘,故创建的文件也属于磁盘,在进行数据存储时,直接操纵内存,将数据存入内存中,后续再根据内存和磁盘间的映射关系,将数据写入磁盘中,由于进行数据存储时直接将数据存入内存中,内存的读写速度是远大于磁盘的,从而可以有效提升数据存储时的写入速度。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种优化的文件存储方法,其特征在于,包括以下步骤:
使用函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
待存储数据拼接至内存中,基于内存和文件间的映射,拼接至内存中的待存储数据在iOS设备空闲或达到定时时间后,写入到文件中,所述文件位于磁盘中。
2.如权利要求1所述的一种优化的文件存储方法,其特征在于:
所述沙盒文件的路径为数组;
所述拼接的路径为创建的文件的地址。
3.如权利要求2所述的一种优化的文件存储方法,其特征在于:所述基于获取的路径,在沙盒文件中拼接一个路径,具体包括:
S201:获取路径的数组的第一个元素;
S202:判断所述第一个元素的长度是否大于0,当且仅当第一个元素的长度大于0时,在沙盒文件中拼接一个路径。
4.如权利要求2所述的一种优化的文件存储方法,其特征在于:所述建立内存和所述文件间的映射,具体步骤为:
S301:基于文件的地址,使用open函数打开文件,得到文件打开结果,所述文件打开结果为fd形式的字段;
S302:当文件打开结果的字段大于0时,设置一变量size,所述变量size的大小为一页内存的大小;
S303:将文件打开结果的字段和变量size传给mmap函数,完成内存和文件间映射的建立。
5.如权利要求1所述的一种优化的文件存储方法,其特征在于:当建立内存和所述文件间的映射之后,还包括对文件添加保护操作,所述对文件添加保护操作具体为:使用NSFileManager函数调用defaultManager函数,得到文件管理器,然后将文件存储于文件管理器中。
6.如权利要求1所述的一种优化的文件存储方法,其特征在于:在待存储数据拼接至内存中之前,还包括:
S411:对待存储数据进行二进制转化得到数据NSData;
S412:对数据NSData添加锁lock后保存;
S413:将保存的数据NSData添加到字典dic中。
7.如权利要求6所述的一种优化的文件存储方法,其特征在于:所述待存储数据拼接至内存中,具体步骤为:
S421:使用函数lengthOfBytesUsingEncoding计算字典dic的key的长度;
S422:计算key占用的字节数,计算数据NSData占用的字节数;
S423:当内存剩余空间大于key占用的字节数和数据NSData占用的字节数之和时,将数据NSData拼接至内存中。
8.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现以下步骤:
使用函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
待存储数据拼接至内存中,基于内存和文件间的映射,拼接至内存中的待存储数据在iOS设备空闲或达到定时时间后,写入到文件中,所述文件位于磁盘中。
9.一种电子设备,其特征在于,所述电子设备包括:
获取单元,用于基于函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
拼接单元,其用于基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
映射建立单元,其用于在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
写入单元,其用于将待存储数据拼接至内存中,然后基于内存和文件间的映射,拼接至内存中的待存储数据在iOS设备空闲或达到定时时间后,写入到文件中,所述文件位于磁盘中。
10.一种优化的文件存储***,其特征在于,包括:
获取模块,用于基于函数NSSearchPathForDirectoriesInDomains获取沙盒文件的路径;
拼接模块,其用于基于获取的路径访问沙盒文件,在沙盒文件中拼接一个路径;
映射建立模块,其用于在拼接的路径中创建一文件,并建立内存和所述文件间的映射;
写入模块,其用于将待存储数据拼接至内存中,然后基于内存和文件间的映射,拼接至内存中的待存储数据在iOS设备空闲或达到定时时间后,写入到文件中,所述文件位于磁盘中。
CN201811481165.XA 2018-12-05 2018-12-05 一种优化的文件存储方法、存储介质、设备及*** Active CN109558375B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811481165.XA CN109558375B (zh) 2018-12-05 2018-12-05 一种优化的文件存储方法、存储介质、设备及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811481165.XA CN109558375B (zh) 2018-12-05 2018-12-05 一种优化的文件存储方法、存储介质、设备及***

Publications (2)

Publication Number Publication Date
CN109558375A CN109558375A (zh) 2019-04-02
CN109558375B true CN109558375B (zh) 2021-03-16

Family

ID=65869037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811481165.XA Active CN109558375B (zh) 2018-12-05 2018-12-05 一种优化的文件存储方法、存储介质、设备及***

Country Status (1)

Country Link
CN (1) CN109558375B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832061A (zh) * 2019-04-18 2020-10-27 天津五八到家科技有限公司 沙盒文件读取方法、装置及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653980A (zh) * 2015-12-30 2016-06-08 福建联迪商用设备有限公司 一种虚拟内存数据的保护方法及其***
CN105760232A (zh) * 2016-02-19 2016-07-13 四川长虹电器股份有限公司 用于ios应用的离线缓存方法及***
CN105814579A (zh) * 2013-10-22 2016-07-27 英派尔科技开发有限公司 沙盒应用数据重定向至数据中心

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902914B (zh) * 2012-09-05 2015-06-03 福建伊时代信息科技股份有限公司 一种实现终端无痕的方法及装置
CN105279164B (zh) * 2014-06-17 2019-12-31 腾讯科技(深圳)有限公司 一种基于ios***的文件处理方法及装置
US9811276B1 (en) * 2015-09-24 2017-11-07 EMC IP Holding Company LLC Archiving memory in memory centric architecture
CN105574099A (zh) * 2015-12-14 2016-05-11 北京北信源软件股份有限公司 一种基于内存信息解决文件数据块语义鸿沟的方法
CN108595989B (zh) * 2018-03-15 2020-06-30 杭州电子科技大学 一种iOS下移动APP安全防护***及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105814579A (zh) * 2013-10-22 2016-07-27 英派尔科技开发有限公司 沙盒应用数据重定向至数据中心
CN105653980A (zh) * 2015-12-30 2016-06-08 福建联迪商用设备有限公司 一种虚拟内存数据的保护方法及其***
CN105760232A (zh) * 2016-02-19 2016-07-13 四川长虹电器股份有限公司 用于ios应用的离线缓存方法及***

Also Published As

Publication number Publication date
CN109558375A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN110865837B (zh) 一种进行***升级的方法和终端
US20190034195A1 (en) Systems and methods for providing patchable rom firmware
CN104423961A (zh) 一种生成测试脚本的方法及***
CN106201610A (zh) Web应用访问终端原生功能的方法及装置
CN112817657B (zh) 一种应用程序启动项加载方法、装置、***及存储介质
CN106648685A (zh) 智能终端***应用的处理方法、装置及智能终端
CN104036194A (zh) 一种应用程序中泄露隐私数据的漏洞检测方法及装置
CN104978378B (zh) 一种网页访问方法和装置
CN111813465A (zh) 一种信息获取方法、装置、介质和设备
CN109117153A (zh) 应用程序的处理方法、装置、终端和存储介质
CN109558375B (zh) 一种优化的文件存储方法、存储介质、设备及***
CN109032693B (zh) 一种加载展示信息方法、装置、电子设备及可读存储介质
CN114296646A (zh) 基于io业务的缓存方法、装置、服务器和存储介质
CN109408057B (zh) 自动生成代码的方法、装置、介质和计算设备
CN116628773A (zh) 数据处理方法、装置、电子设备及存储介质
US8280950B2 (en) Automatic client-server code generator
CN110348226A (zh) 一种工程文件的扫描方法、装置、电子设备及存储介质
CN109491687A (zh) 一种应用软件的热更新方法、装置、终端及可读介质
CN104123140A (zh) 一种移动终端应用程序的管理方法及装置
US11366613B2 (en) Method and apparatus for writing data
CN111008178B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111596997B (zh) Ui信息的请求方法、装置、终端和存储介质
CN114244912A (zh) 数据传输方法、装置、计算机设备及存储介质
CN105610908A (zh) 一种基于安卓设备的samba服务实现方法及***
CN112612531A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240204

Address after: Room 101-1, Building 2, No. 95 Daguan Middle Road, Tianhe District, Guangzhou City, Guangdong Province, 510000

Patentee after: Guangzhou Zhongtian Technology Consulting Co.,Ltd.

Country or region after: China

Address before: 430000 Wuhan Donghu Development Zone, Wuhan, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right

Effective date of registration: 20240620

Address after: Room 801, 8th Floor, Building 7, Yard 1, Haiying Road, Fengtai District, Beijing, 100070

Patentee after: Keqi Caitong (Beijing) Technology Co.,Ltd.

Country or region after: China

Address before: Room 101-1, Building 2, No. 95 Daguan Middle Road, Tianhe District, Guangzhou City, Guangdong Province, 510000

Patentee before: Guangzhou Zhongtian Technology Consulting Co.,Ltd.

Country or region before: China