ZIP压缩文件映射成关系存储结构的设计
介绍了Web网络程序中处理大量文件传输和存储的基本方式和主要不足,同时提出了一个基于压缩文件下的设计优化方案来实现网络上大量文件的处理。
标签:
存储结构;zip;压缩文件
1 引言
本文提出和设计了一种可以批量处理目录及文件映射到数据库存储结构的解决方案,该方案的策略是将大量处理文件以ZIP的形式一次性进行处理,通过文件解压接口对ZIP文件进行解压,然后按照文件树目录结构的关系映射成关系存储结构,在接下来的内容中将会详细阐述该方案的设计方式和具体的实现过程。
2 Java文件压缩技术研究
在Java语言中提供了处理压缩文件的API,这样使得程序员可以很方便的实现文件的压缩和解
压缩,下面将分别探究Java压缩和解压缩文件的实现机制。
2.1 文件压缩
在Java语言中提供了一个ZipOutputStream类,该类提供了压缩zip文件的写入数据流。在压缩文件时可以通过它先构建一个zip文件,然后通过其write方法写入文件数据流。
2.2 文件解压缩
对于文件的解压缩,Java语言提供了一个ZipFile类,通过该类可以解析出压缩文件的目录文件对象。ZipFile类有一个entries方法,该方法将压缩文件的所有目录文件的信息封装到了ZipEntry对象中,并返回该对象的集合。通过ZipEntry对象可以访问到每个目录或文件的基本信息。
3 ZIP压缩文件处理相关设计
在许多基于关系数据库的实际项目开发中,常常需要存储树型结构的数据,目前有很多不错的方法,如邻接列表模型(The Adjacency List Model),在此基础上也有很多人针对不同的
需求做了相应的改进,但总是在某些方面存在的各种各样的缺陷。理想中的树型结构应具备这些特点:数据存储冗余小、直观性强;方便返回整个树型结构数据;可以很轻松的返回某一子树(方便分层加载)。本文要述说的正是关于批量目录文件映射为关系数据库存储的设计和实现,目录文件本身是一种树型数据存储结构,要将其存储的层次结构以关系数据库来表现需要合理的数据结构设计,这里将详细概述目录树型结构映射成关系数据库的具体设计。
目录文件由于其直观性和易操作性使得它是计算机系统最常使用的一种数据存放方式,在window操作系统中基本是以文件目录的形势存在,此外在应用程序中为了满足用户需求,界面上经常要用目录树的形势展现信息数据,因此在程序开发中经常要解决目录树在关系数据库的存储以及操作问题。
要用关系数据库来存储目录文件的数据,在设计的时候不仅要考虑文件信息的存储,还要考虑目录文件的层次关系的保存,只有这样才可以从数据库恢复目录文件。因此需要设计出一种能够将目录文件的数据和层次结构映射成关系数据存储的关系表结构,通过该结构可以完整地保存目录文件的信息,同时可以将数据反映射成树型结构。本文针对这样的特性,优化设计出了一种目录文件的关系存储结构如表1所示。
压缩文件怎么解压表1 树型关系存储设计
字段名字段描述
id树节点编号
name名称
path整体路径
size文件大小
entity文件实体
describe描述
parent_id节点的父节点
ZIP是一种可以将大量文件归档成一个压缩文件的工具,这样既可以批量操作目录文件,同时压缩整个目录文件的大小,这对于在网络传输来说是一个很重要的性能考虑。在Web程序
中批处理目录文件存储到关系数据库的完整流程,整个功能实现分为目录文件压缩、上传、解压、映射四部分来实现。
压缩:将批量目录文件压缩成一个文件进行处理,从而简化操作以及目录文件大小;
上传:将压缩文件通过网络传输到服务器端程序;
解压:对压缩文件解压,从而可以递归访问所有的目录文件;
映射:对所有目录文件按照层次关系映射到关系数据库进行存储。
4 结语
本文针对软件项目中文件处理过程的特性和难点分析,提出了一种更优化的文件处理解决方案,通过该方案可以很好的解决项目中批量处理文件的复杂性。提高软件开发效率的一个重要途径是设计可复用的功能代码,在这里正是基于这样的一个理念实现批量处理大量文件的可复用的功能组件。目前软件的发展成熟度远远落后于硬件的发展速度,软件的发展之路也是很漫长的,需要不断的创新努力来提高软件开发的效率和质量。
参考文献
[1] 李宁.Java Web开发速学宝典[M]北京:中国铁道出版社,2009.
[2] 孙鑫.Java Web开发详解[M]北京:电子工业出版社,2006.