如何使用Apache Commons-Compress系统库实现将文件压缩为zip格式的压缩文件的应用示例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1如何使用Apache Commons-Compress系统库实现将文件压缩为zip 格式的压缩文件的应用示例
1.1.1新建一个J2SE 的Java应用程序项目
1、新建一个J2SE 的Java应用程序项目
2、设置项目名称为JavaCompress
3、创建出名称为JavaCompress的Java应用程序项目
1.1.2在所创建出的JavaCompress项目中添加一个Java应用程序类
1、新建一个Java应用程序类
2、设置类名称为ApacheCommonCompressFileUtil,程序包名称为com.bluedream.javacompress
(1)创建ApacheCommonCompressFileUtil程序类
(2)ApacheCommonCompressFileUtil程序类的初始代码
1.1.3编程ApacheCommonCompressFileUtil程序类和准备测试用的待压缩的原始文件
1、ApacheCommonCompressFileUtil程序类的代码示例
(1)项目局部截图
(2)ApacheCommonCompressUtil程序类的代码示例
package com.bluedream.javacompress;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import press.archivers.zip.ZipArchiveEntry;
import press.archivers.zip.ZipArchiveOutputStream;
import press.utils.IOUtils;
/**
* 设定文件读写的缓冲区的默认容量为1024(1KB)字节
*/
public static final int BUFFER_SIZE = 1024;
public ApacheCommonCompressFileUtil(){
super();
}
/**
* 对某个单一文件实现压缩为*.zip格式的压缩文件的功能方法
* @param compressedSourceFileName 待压缩的原始文件路径和文件名称字符串
* @param savedTargetZipFileName 压缩后输出的目标*.zip文件的目录路径和文件名称字符串
*/
public void doCompressSomeOneFileToZipFile(String compressedSourceFileName, String savedTargetZipFileName) {
ZipArchiveOutputStream someOneZipArchiveOutputStream = null;
InputStream someOneBufferedInputStream = null;
OutputStream someOneBufferedOutputStream = null;
File compressedSourceFile=null;
File savedTargetZipFile=null;
ZipArchiveEntry someOneZipArchiveEntry =null;
/**
* 将调用中所给定的待压缩的原始文件路径和文件名称字符串、压缩输出的目标*.zip文件的目录和文件名称字符串转换为Java IO中的File文件对象
*/
compressedSourceFile=new File(compressedSourceFileName);
savedTargetZipFile=new File(savedTargetZipFileName);
try {
/**
* 将待压缩的原始文件的二进制输入流转换为缓存输入流对象,将压缩输出
的目标*.zip文件的二进制输除流转换为缓存输出流对象
*/
someOneBufferedInputStream = new BufferedInputStream(new FileInputStream(compressedSourceFile), BUFFER_SIZE);
someOneBufferedOutputStream=new BufferedOutputStream(new FileOutputStream(savedTargetZipFile), BUFFER_SIZE);
/**
* 将缓存输出流对象转换为ZipArchiveOutputStream流对象
*/
someOneZipArchiveOutputStream = new ZipArchiveOutputStream(someOneBufferedOutputStream);
/**
* 根据压缩的原始文件名称构建出对应的目标压缩*.zip文件的ZipArchiveEntry对象
*/
someOneZipArchiveEntry = new ZipArchiveEntry(compressedSourceFile.getName());
someOneZipArchiveEntry.setSize(compressedSourceFile.length());
someOneZipArchiveOutputStream.putArchiveEntry(someOneZipArchiveEntry);
/**
* 对原始的待压缩文件进行压缩处理,并创建出压缩后的目标文件
*/
IOUtils.copy(someOneBufferedInputStream, someOneZipArchiveOutputStream);
someOneZipArchiveOutputStream.closeArchiveEntry();
}
catch(FileNotFoundException exception) {
exception.printStackTrace();
}
catch(IOException exception) {
exception.printStackTrace();