基于局域网的文件接收及存储方法、查看方法及系统的制作方法

文档序号:8905251阅读:853来源:国知局
基于局域网的文件接收及存储方法、查看方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种文件处理技术,尤其是涉及一种基于局域网的文件接收及存储方法、查看方法及系统。
【背景技术】
[0002]如今的移动教育类产品发展迅猛,然而基于小型局域网的班级式的移动教育类产品还是比较稀少的。在开发此类产品的过程中利用传统的网络文件处理方式很难满足当前的需求,而且内存占用大、效率低,致使产品的用户体验比较差。传统的网络文件处理方式是将接收的文件一个一个的保存到本地,然后根据需要再去磁盘上去加载该文件,效率低。

【发明内容】

[0003]本发明所要解决的技术问题是:本发明所要解决的技术问题是:提供一种基于局域网的文件接收及存储方法、查看方法及系统,其减少了内存占用,提高内存利用率,且提高了系统的I/o效率,并起到对文件的隐藏保护功能。
[0004]为了解决上述技术问题,本发明采用的技术方案为:提供一种基于局域网的文件接收及存储方法,包括:服务端接收文件字节流数据;存储所述文件字节流数据到内存映射文件中;提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中;添加所述索引记录对象到索引记录对象列表中。
[0005]其中,本发明还提供一种基于局域网的文件查看方法,包括:程序从所述索引记录对象列表中检索出所述文件对应的索引记录对象;根据所述索引记录对象保存的所述文件相关信息,查找所述文件对应的内存映射文件;在所述内存映射文件中读取所述文件的内容。
[0006]其中,本发明还提供一种基于局域网的文件接收、存储及查看系统,包括:移动端、服务端、内存映射文件单元、索引记录对象单元;其中,所述移动端向所述服务端发送文件字节流数据;所述内存映射文件单元用于创建内存映射文件,所述服务端将所述文件字节流数据存储到所述内存映射文件中;所述索引记录对象单元用于创建索引记录对象。所述服务端提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中。
[0007]本发明的有益效果在于:相对现有技术,本发明中的服务端在接收到其他移动端传过来的文件字节流数据时,将其存储到一个内存映射文件中,并将所收到的文件的相关信息保存在内存中的索引记录对象中。当要使用该文件时,程序先到内存中检索保存此文件信息的索引记录对象,然后根据查找到的对象所保存的信息,去对应的内存映射文件中读取文件内容,再做后续处理。如此不仅可以实现对多个文件内容的随机访问,而且可以减少不必要的内存占用,当用户需要时才去磁盘上把内容读取到内存中,不需要时可以直接释放掉,提高内存的使用效率,此外在上述方法及系统下,由于源文件无法被直接看到,因此本本发明还可以对文件起到隐藏保护功能。
【附图说明】
[0008]图1为本发明基于局域网的文件接收及存储方法实施例一的流程图;
[0009]图2为本发明基于局域网的文件接收及存储方法实施例二的流程图;
[0010]图3为本发明基于局域网的文件接收及存储方法实施例二中步骤S70的具体步骤流程图;
[0011]图4为本发明基于局域网的文件接收及存储方法实施例三的流程图;
[0012]图5为本发明基于局域网的文件查看方法实施例四的流程图;
[0013]图6为本发明基于局域网的文件接收及存储、查看的系统实施例五的结构示意图;
[0014]图7为本发明执行步骤SlOO后的具体步骤流程图。
【具体实施方式】
[0015]为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0016]请参照图1,本发明基于局域网的文件接收及存储方法实施例一包括如下步骤:
[0017]SllO:服务端接收文件字节流数据;
[0018]S120:存储所述文件字节流数据到内存映射文件中;
[0019]S130:提取所述文件及所述内存映射文件的相关信息,并保存在索引记录对象中;
[0020]S140:添加所述索引记录对象到索引记录对象列表中。
[0021]一般地,文件在网络中传输时,都需要将文件转化为字节流数据,字节流是由字节组成的,在所有的流操作里。字节永远是最基础的。任何基于字节的操作都是正确的,无论是文本文件还是二进制的文件。所有的InputStream和OutputStream的子类都是字节流,它是按字节来处理的。字节流可用于任何类型的对象。
[0022]而本发明的字节流数据通常是由移动端程序通过TCP链接发送的,服务端将这些字节流数据存储到内存映射文件中。而内存映射文件是由一个文件到一块内存的映射。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/o操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。如对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,而以通常的文件处理方法进行处理显然是行不通的,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的。
[0023]另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,或共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。而且,本发明中内存映射文件为可随机访问的。
[0024]服务端提取要存储的文件的相关信息,如该文件的大小、时间戳或其他相关信息后,保存到索引记录对象中,而内存映射文件的相关信息也可被提取并存储到索引记录对象中。在并这些索引记录对象建立一个索引记录对象列表。
[0025]从上述描述可知,本发明的有益效果在于:区别于现有技术,本发明实施例一通过存储文件字节流数据到内存映射文件中,实现了对文件的随机存储,减少占用不必要的内存,并对文件及内存映射文件建立相应的索引记录对象,并添加到索引记录对象列表中,实现文件存储的路径的便捷,并很好的隐藏保护了源文件,具备一定安全可靠性。
[0026]如图2所示,本发明文件接收及存储方法实施例二在上述实施例一的基础上,在步骤SllO之前,还包括如下步骤:
[0027]S70:创建内存映射文件;
[0028]S80:根据所创建的内存映射文件,建立内存映射文件列表,并添加所述内存映射文件到所述内存映射文件列表中;
[0029]S90:对所述内存映射文件进行编号;
[0030]SlOO:所述服务端从所述内存映射文件列表获取用于存储所述文件字节流数据的所述内存映射文件。
[0031]如图3所示,在执行步骤S70时,可具体地可执行如下步骤:
[0032]S71:访问所接收文件内容的目录,获取文件列表;
[0033]S72:再通过系统函数将所接收文件转换为所述内存映射文件。
[0034]这里的系统函数可以是JAVA函数等可实现转化的函数。
[0035]而有多个文件需要接收存储时,当内存映射文件的空间足够大时,则一个内存映射文件可存储多个接收的文件内容,若空间不足时,就有必要为每个文件独立创建其相应的内存映射文件,这些内存映射文件需要对其进行编号,并建立内存映射文件列表,编号可按照文件接收顺序进行,如最后要接收的文件,可以将为其创建的内存映射文件排在内存映射文件列表的末尾。其中这些步骤在程序启动时,可由程序自动完成,或者人工操作实现。
[0036]因此,内存映射文件列表存储的只是对象的引用,而不是所有文件内容,其所占的内存空间非常有限,这样方便后续对文件查看的操作。
[0037]如图7所示,在执行步骤SlOO后,还需判断所述内存映射文件是否有足够的空间存储所接收文件
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1