CN104881441B - 基于局域网的文件接收及存储方法、查看方法及系统 - Google Patents
基于局域网的文件接收及存储方法、查看方法及系统 Download PDFInfo
- Publication number
- CN104881441B CN104881441B CN201510238842.5A CN201510238842A CN104881441B CN 104881441 B CN104881441 B CN 104881441B CN 201510238842 A CN201510238842 A CN 201510238842A CN 104881441 B CN104881441 B CN 104881441B
- Authority
- CN
- China
- Prior art keywords
- file
- memory mapping
- index record
- memory
- record object
- 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
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
- G06F16/134—Distributed indices
-
- 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
本发明公开了一种基于局域网的文件接收及存储方法,包括:服务端接收文件字节流数据;存储所述文件字节流数据到内存映射文件中;提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中;添加所述索引记录对象到索引记录对象列表中。本发明还公开了对应文件上述接收及存储方法的查看方法及系统,通过上述方式,本发明可以减少内存占用,提高内存利用率及I/O效率,又起到对文件的隐藏保护功能。
Description
技术领域
本发明涉及一种文件处理技术,尤其是涉及一种基于局域网的文件接收及存储方法、查看方法及系统。
背景技术
如今的移动教育类产品发展迅猛,然而基于小型局域网的班级式的移动教育类产品还是比较稀少的。在开发此类产品的过程中利用传统的网络文件处理方式很难满足当前的需求,而且内存占用大、效率低,致使产品的用户体验比较差。传统的网络文件处理方式是将接收的文件一个一个的保存到本地,然后根据需要再去磁盘上去加载该文件,效率低。
发明内容
本发明所要解决的技术问题是:本发明所要解决的技术问题是:提供一种基于局域网的文件接收及存储方法、查看方法及系统,其减少了内存占用,提高内存利用率,且提高了系统的I/O效率,并起到对文件的隐藏保护功能。
为了解决上述技术问题,本发明采用的技术方案为:提供一种基于局域网的文件接收及存储方法,包括:服务端接收文件字节流数据;存储所述文件字节流数据到内存映射文件中;提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中;添加所述索引记录对象到索引记录对象列表中。
其中,本发明还提供一种基于局域网的文件查看方法,包括:程序从所述索引记录对象列表中检索出所述文件对应的索引记录对象;根据所述索引记录对象保存的所述文件相关信息,查找所述文件对应的内存映射文件;在所述内存映射文件中读取所述文件的内容。
其中,本发明还提供一种基于局域网的文件接收、存储及查看系统,包括:移动端、服务端、内存映射文件单元、索引记录对象单元;其中,所述移动端向所述服务端发送文件字节流数据;所述内存映射文件单元用于创建内存映射文件,所述服务端将所述文件字节流数据存储到所述内存映射文件中;所述索引记录对象单元用于创建索引记录对象。所述服务端提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中。
本发明的有益效果在于:相对现有技术,本发明中的服务端在接收到其他移动端传过来的文件字节流数据时,将其存储到一个内存映射文件中,并将所收到的文件的相关信息保存在内存中的索引记录对象中。当要使用该文件时,程序先到内存中检索保存此文件信息的索引记录对象,然后根据查找到的对象所保存的信息,去对应的内存映射文件中读取文件内容,再做后续处理。如此不仅可以实现对多个文件内容的随机访问,而且可以减少不必要的内存占用,当用户需要时才去磁盘上把内容读取到内存中,不需要时可以直接释放掉,提高内存的使用效率,此外在上述方法及系统下,由于源文件无法被直接看到,因此本本发明还可以对文件起到隐藏保护功能。
附图说明
图1为本发明基于局域网的文件接收及存储方法实施例一的流程图;
图2为本发明基于局域网的文件接收及存储方法实施例二的流程图;
图3为本发明基于局域网的文件接收及存储方法实施例二中步骤S70的具体步骤流程图;
图4为本发明基于局域网的文件接收及存储方法实施例三的流程图;
图5为本发明基于局域网的文件查看方法实施例四的流程图;
图6为本发明基于局域网的文件接收及存储、查看的系统实施例五的结构示意图;
图7为本发明执行步骤S100后的具体步骤流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明基于局域网的文件接收及存储方法实施例一包括如下步骤:
S110:服务端接收文件字节流数据;
S120:存储所述文件字节流数据到内存映射文件中;
S130:提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中;
S140:添加所述索引记录对象到索引记录对象列表中。
一般地,文件在网络中传输时,都需要将文件转化为字节流数据,字节流是由字节组成的,在所有的流操作里。字节永远是最基础的。任何基于字节的操作都是正确的,无论是文本文件还是二进制的文件。所有的InputStream和OutputStream的子类都是字节流,它是按字节来处理的。字节流可用于任何类型的对象。
而本发明的字节流数据通常是由移动端程序通过TCP链接发送的,服务端将这些字节流数据存储到内存映射文件中。而内存映射文件是由一个文件到一块内存的映射。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。如对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,而以通常的文件处理方法进行处理显然是行不通的,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的。
另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,或共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。而且,本发明中内存映射文件为可随机访问的。
服务端提取要存储的文件的相关信息,如该文件的大小、时间戳或其他相关信息后,保存到索引记录对象中,而内存映射文件的相关信息也可被提取并存储到索引记录对象中。在并这些索引记录对象建立一个索引记录对象列表。
从上述描述可知,本发明的有益效果在于:区别于现有技术,本发明实施例一通过存储文件字节流数据到内存映射文件中,实现了对文件的随机存储,减少占用不必要的内存,并对文件及内存映射文件建立相应的索引记录对象,并添加到索引记录对象列表中,实现文件存储的路径的便捷,并很好的隐藏保护了源文件,具备一定安全可靠性。
如图2所示,本发明文件接收及存储方法实施例二在上述实施例一的基础上,在步骤S110之前,还包括如下步骤:
S70:创建内存映射文件;
S80:根据所创建的内存映射文件,建立内存映射文件列表,并添加所述内存映射文件到所述内存映射文件列表中;
S90:对所述内存映射文件进行编号;
S100:所述服务端从所述内存映射文件列表获取用于存储所述文件字节流数据的所述内存映射文件。
如图3所示,在执行步骤S70时,可具体地可执行如下步骤:
S71:访问所接收文件内容的目录,获取文件列表;
S72:再通过系统函数将所接收文件转换为所述内存映射文件。
这里的系统函数可以是JAVA函数等可实现转化的函数。
而有多个文件需要接收存储时,当内存映射文件的空间足够大时,则一个内存映射文件可存储多个接收的文件内容,若空间不足时,就有必要为每个文件独立创建其相应的内存映射文件,这些内存映射文件需要对其进行编号,并建立内存映射文件列表,编号可按照文件接收顺序进行,如最后要接收的文件,可以将为其创建的内存映射文件排在内存映射文件列表的末尾。其中这些步骤在程序启动时,可由程序自动完成,或者人工操作实现。
因此,内存映射文件列表存储的只是对象的引用,而不是所有文件内容,其所占的内存空间非常有限,这样方便后续对文件查看的操作。
如图7所示,在执行步骤S100后,还需判断所述内存映射文件是否有足够的空间存储所接收文件的内容;
若是,则将所接收的文件内容保存到所述内存映射文件中;
若否,则所述服务端创建新的内存映射文件,并将所述新的内存映射文件添加到所述内存映射文件列表末尾。
本领域技术人员可根据需要预先设定内存映射文件的大小,如1M。而当发现有文件的内容超过1M时,服务端就需要重新创建由更大空间的内存映射文件来存储文件内容,并将其添加到内存映射文件列表内,因为是新创建的,因此是排到所述内存映射文件列表末尾。也正如上述,在执行步骤S100时,服务端就从所述内存映射文件列表末尾获取用于存储所述文件字节流数据的所述内存映射文件。
如图4所示,本发明文件接收及存储方法实施例三执行实施例一中的步骤S130时,可具体执行如下步骤:
S131:创建文件索引记录对象;
S132:提取所述文件的大小、时间戳信息及存储位置,并保存到所述索引记录对象中。
文件的大小、时间戳或者其他可对文件存在定位功能的信息均可保存到索引记录对象中。索引记录对象对文件的相关信息起到提纲挈领的作用。
由上述描述可知,本发明文件的接收及存储方法通过将文件转化为内存映射文件,减少内存占用,同时建立内存映射文件列表,对内存映射文件编号,实现统一文件管理,再对提取文件及对应的内存映射文件的相关信息,建立索引记录对象以及索引记录对象列表,实现对接收文件进行存储管理,既不占用过多的内存,提高内存利用率及I/O效率,同时还隐藏了源文件,起到保护的作用。
同时,当文件通过上述方法被接收、存储后,如图5所示,本发明实施例四还对应提供了一种基于局域网的文件查看方法,包括如下步骤:
S210:程序从所述索引记录对象列表中检索出所述文件对应的索引记录对象;
S220:根据所述索引记录对象保存的所述文件相关信息,查找所述文件对应的内存映射文件;
S230:在所述内存映射文件中读取所述文件的内容。
当程序要查看某个文件时,首先从索引记录对象列表中查找此文件对应的索引记录对象,根据查询到的索引记录对象所记录的内存映射文件相关信息,再去内存映射文件列表中查找对应的内存映射文件,由于内存映射文件与所存储的文件一一对应,因此找到内存映射文件,就可找到需要查看的文件。
其中,在执行步骤S230时,本发明文件查看方法实施例五可具体执行如下步骤:根据所述索引记录对象保存的文件大小、存储位置、时间戳信息,在所述内存映射文件中读取所述文件的内容。
本发明文件查看方法是针对上述文件的接收及存储方法而来,当要使用某文件时,程序先到内存中检索保存此文件信息的索引记录对象,然后根据查找到的对象所保存的信息,去对应的内存映射文件中读取文件内容,然后做后续处理,不仅可实现对多个文件内容的随机访问,还减少了不必要的内存占用,当用户需要时才去磁盘上把内容读取到内存中,不需要时可以直接释放掉,提高内存的使用效率。
承上,如图6所示,本发明实施例六提供了一种基于局域网的文件接收、存储及查看系统100,包括:
移动端110、服务端120、内存映射文件单元130、索引记录对象单元140;其中,
所述移动端110向所述服务端120发送文件字节流数据;
所述内存映射文件单元130用于创建内存映射文件,所述服务端120将所述文件字节流数据存储到所述内存映射文件中;
所述索引记录对象单元140用于创建索引记录对象。所述服务端120提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中。
通常,所述移动端110通过TCP链接发送所述文件字节流数据到所述服务端120。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于局域网的文件接收、存储及查看方法,其特征在于,包括:
服务端接收文件字节流数据;
存储所述文件字节流数据到内存映射文件中;
提取所述文件及所述内存映射文件的相关信息,并保存在内存中的索引记录对象中;
添加所述索引记录对象到索引记录对象列表中;
程序从索引记录对象列表中检索出所述文件对应的保存在内存中的索引记录对象;
根据所述索引记录对象保存的所述文件的相关信息,查找所述文件对应的内存映射文件;
在所述内存映射文件中读取所述文件的内容;
所述提取所述文件及所述内存映射文件的相关信息,并保存在内存中的索引记录对象中的步骤具体为:
创建文件索引记录对象;
提取所述文件的大小、时间戳信息及存储位置,并保存到所述索引记录对象中。
2.根据权利要求1所述基于局域网的文件接收、存储及查看方法,其特征在于,在服务端接收文件字节流数据的步骤之前,还包括:
创建内存映射文件;
根据所创建的内存映射文件,建立内存映射文件列表,并添加所述内存映射文件到所述内存映射文件列表中;
对所述内存映射文件进行编号;
所述服务端从所述内存映射文件列表获取用于存储所述文件字节流数据的所述内存映射文件。
3.根据权利要求2所述基于局域网的文件接收、存储及查看方法,其特征在于,创建内存映射文件的步骤具体为:
访问所接收文件内容的目录,获取文件列表;
通过系统函数将所接收文件转换为所述内存映射文件。
4.根据权利要求2所述基于局域网的文件接收、存储及查看方法,其特征在于,所述服务端从所述内存映射文件列表获取用于存储所述文件字节流数据的所述内存映射文件的步骤之后,还包括:
判断所述内存映射文件是否有足够的空间存储所接收文件的内容;
若是,则将所接收的文件内容保存到所述内存映射文件中;
若否,则所述服务端创建新的内存映射文件,并将所述新的内存映射文件添加到所述内存映射文件列表末尾。
5.根据权利要求2所述基于局域网的文件接收、存储及查看方法,其特征在于,所述服务端从所述内存映射文件列表获取用于存储所述文件字节流数据的所述内存映射文件的步骤具体为:
所述服务端从所述内存映射文件列表末尾获取用于存储所述文件字节流数据的所述内存映射文件。
6.根据权利要求1所述基于局域网的文件接收、存储及查看方法,其特征在于,其中在所述内存映射文件中读取所述文件的内容的步骤具体为:
根据所述索引记录对象保存的文件大小、存储位置、时间戳信息,在所述内存映射文件中读取所述文件的内容。
7.一种基于局域网的文件接收、存储及查看系统,其特征在于,包括:
移动端、服务端、内存映射文件单元、索引记录对象单元、索引记录对象添加单元和文件读取单元;其中,
所述移动端向所述服务端发送文件字节流数据;
所述内存映射文件单元用于创建内存映射文件,所述服务端将所述文件字节流数据存储到所述内存映射文件中;
所述索引记录对象单元用于创建索引记录对象;
所述服务端提取所述文件及所述内存映射文件的相关信息,并保存在内存中的索引记录对象中;
所述索引记录对象添加单元用于添加所述索引记录对象到索引记录对象列表中;
所述文件读取单元用于从索引记录对象列表中检索出所述文件对应的保存在内存中的索引记录对象;
根据所述索引记录对象保存的所述文件的相关信息,查找所述文件对应的内存映射文件;
在所述内存映射文件中读取所述文件的内容;
所述提取所述文件及所述内存映射文件的相关信息,并保存在内存中的索引记录对象中具体为:
创建文件索引记录对象;
提取所述文件的大小、时间戳信息及存储位置,并保存到所述索引记录对象中。
8.根据权利要求7所述基于局域网的文件接收、存储及查看系统,其特征在于,所述移动端通过TCP链接发送所述文件字节流数据到所述服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510238842.5A CN104881441B (zh) | 2015-05-12 | 2015-05-12 | 基于局域网的文件接收及存储方法、查看方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510238842.5A CN104881441B (zh) | 2015-05-12 | 2015-05-12 | 基于局域网的文件接收及存储方法、查看方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881441A CN104881441A (zh) | 2015-09-02 |
CN104881441B true CN104881441B (zh) | 2018-11-06 |
Family
ID=53948935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510238842.5A Active CN104881441B (zh) | 2015-05-12 | 2015-05-12 | 基于局域网的文件接收及存储方法、查看方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881441B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180096A (zh) * | 2017-05-16 | 2017-09-19 | 合肥智慧龙图腾知识产权股份有限公司 | 一种快速保存同一程序同时打开的多个文件的系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783740A (zh) * | 2009-01-21 | 2010-07-21 | 大唐移动通信设备有限公司 | 消息文件管理方法及装置 |
CN103186617A (zh) * | 2011-12-30 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种存储数据的方法和装置 |
CN103823865A (zh) * | 2014-02-25 | 2014-05-28 | 南京航空航天大学 | 一种数据库主存索引方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7032088B2 (en) * | 2003-08-07 | 2006-04-18 | Siemens Corporate Research, Inc. | Advanced memory management architecture for large data volumes |
-
2015
- 2015-05-12 CN CN201510238842.5A patent/CN104881441B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783740A (zh) * | 2009-01-21 | 2010-07-21 | 大唐移动通信设备有限公司 | 消息文件管理方法及装置 |
CN103186617A (zh) * | 2011-12-30 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种存储数据的方法和装置 |
CN103823865A (zh) * | 2014-02-25 | 2014-05-28 | 南京航空航天大学 | 一种数据库主存索引方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104881441A (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101994021B1 (ko) | 파일 조작 방법 및 장치 | |
WO2018121430A1 (zh) | 文件存储和索引方法、装置、介质、设备及读取文件的方法 | |
CN110134648A (zh) | 日志处理方法、装置、设备、系统及计算机可读存储介质 | |
CN105677251B (zh) | 基于Redis集群的存储系统 | |
CN106708825B (zh) | 一种数据文件处理方法及系统 | |
US11451629B2 (en) | Distributed metadata management method for distributed file system | |
CN109542857B (zh) | 审计日志存储方法、查询方法、装置及相关设备 | |
CN104794228A (zh) | 一种搜索结果提供方法及装置 | |
CN104331428A (zh) | 一种小文件和大文件的存储及访问方法 | |
TW200725298A (en) | System and method for storage management | |
CN109144413A (zh) | 一种元数据管理方法及装置 | |
CN103853714A (zh) | 一种数据处理方法和装置 | |
CN100378663C (zh) | 将应用程序动态下载到用户识别模块的方法、系统及模块 | |
CN110399348A (zh) | 文件重删方法、装置、系统及计算机可读存储介质 | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN107911456A (zh) | 图片加载的流量优化方法、装置、终端设备及存储介质 | |
CN104268012B (zh) | 一种图片数据处理方法及装置 | |
CN104090913B (zh) | 基于瘦客户机的文件操作方法及装置 | |
US11385900B2 (en) | Accessing queue data | |
CN112559463A (zh) | 压缩文件处理的方法及装置 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN111046106A (zh) | 缓存数据同步方法、装置、设备及介质 | |
CN104881441B (zh) | 基于局域网的文件接收及存储方法、查看方法及系统 | |
CN110245129A (zh) | 一种分布式全局数据去重方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |