JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Java文件压缩的处理方式 java 压缩

wys521 2024-11-10 13:18:15 精选教程 18 ℃ 0 评论

Java文件压缩的处理方式——项目开发实战篇

一、 概述:

以Java项目开发实战的角度对文件压缩与解压缩技术进行分析,从应用场景、实战场景和案例分析等方面逐步展开说明。需要注意的是自媒体、流媒体或视频类门户网站对该技术的关注点在于压缩率、压缩和解压缩速度、算法迭代和优化等等方面;一般大中型企业数据管理平台的关注点则是压缩文件格式与平台系统环境的匹配度,即使用系统默认的压缩文件格式,无需单独安装压缩工具。因为不同的系统对于软件的安装要求不一致,导致部分软件不能正常安装。例如:Solaris和UNIX早期版本,还包括32位和64位系统的差异。

本文以压缩文件格式的视角逐步展开说明,避开那些专业度较高的层面,可以达到快速入门和理解的目的。后期会单独针对各种不同实现技术的性能进行分析说明。

二、 项目中的应用场景:

1、 附件文件批量下载并压缩;

2、 日志文件压缩;

3、 厂商接口数据文件压缩与解压缩;

4、 经FTP方式传递的各种文件;

三、 项目中的缺省情况处理:

1、 压缩文件时未设置新生成文件的路径:

a) 压缩单个文件使用文件名称进行命名(去除文件格式后缀的纯文件名称);

b) 压缩多个文件:属于同一个文件夹使用文件夹名称进行命名,否则使用第一个文件的名称或父文件夹名称进行命名;

c) 压缩文件夹时与文件处理一致;

2、 解压缩文件时未设置输出文件的路径:

a) 在解压缩文件同级直接解压缩;

b) 在解压缩文件同级生成同名文件夹后,在进行解压缩;

四、 项目中常用的压缩格式:

1、 zip;

2、 rar;

3、 tar;

4、 tar.gz;

5、 7z;

五、 项目中常用的压缩技术:

1、 zip:

a) JDK自带API:

自带的java.util.zip.ZipEntry(路径中带有中文的情况不能解析);

b) 示例代码:

c) ant.jar:

org.apache.tools.zip.ZipEntry可以有效的解决中文路径乱码问题,通过org.apache.tools.zip.提供的setEncoding( encoding)方法进行字符编码设置。

d) 示例代码:

2、 rar:

a) 说明:

java-unrar-0.3.jar中的de.innosystec.unrar.Archive;

由于RAR未开放压缩算法,因此只能通过Java代码进行解压缩操作。

b) 示例代码:

3、 tar:

a) 说明:

commons-compress.jar中的org.apache.commons.compress.archivers.tar.TarArchiveEntry;

在使用TarArchiveEntry对象调用setName( name)方法时,先将文件名称进行编码格式转换处理。

b) 示例代码:

4、 tar.gz:

a) 说明:

commons-compress.jar中的org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream和org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;

只能针对TAR文件进行再次压缩。

b) 示例代码:

5、 7z:

a) 说明:

commons-compress.jar中的org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry;

在使用SevenZOutputFile对象调用createArchiveEntry( inputFile, entryName)方法时,先将文件名称进行编码格式转换处理。

b) 示例代码:

六、 案例分析:

1、 类图:

2、 Spring配置:

3、 说明:

使用接口将对象整合,以便在注入时可以使用同一个对象实例化。

4、 优化:

a) 优化思路:

根据实际调用频率,可以通过单例模式的方法优化对象实例化过程。

b) 具体操作:

i. 增加将类对象定义为该类的私有静态成员变量;

ii. 增加getInstance方法进行实例化操作;

iii. 增加closed方法进行对象置空操作;

iv. 修改Spring配置;

c) 示例代码:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表