如何使用Apache Commons-Compress系统库实现将文件压缩为zip格式的压缩文件的应用示例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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();

相关文档
最新文档