import java.io.*;
import java.util.*;
import java.util.zip.*;
/**
* <p>Title: 文件压缩和解压</p>
* <p>Description: 使用ZipInputStream和ZipOutputStream对文件
* 和目录进行压缩和解压处理</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: myZip.java</p>
* @version 1.0
*/
public class myZip{
/**
*<br>方法说明:实现文件的压缩处理
*<br>输入参数:String[] fs 压缩的文件数组
*<br>返回类型:
*/
public void ZipFiles(String[] fs){
try{
String fileName = fs[0];
FileOutputStream f =
new FileOutputStream(fileName+".zip");
//使用输出流检查
CheckedOutputStream cs =
new CheckedOutputStream(f,new Adler32());
//声明输出zip流
ZipOutputStream out =
new ZipOutputStream(new BufferedOutputStream(cs));
//写一个注释
out.setComment("A test of Java Zipping");
//对多文件进行压缩
for(int i=1;i<fs.length;i++){
System.out.println("Write file "+fs[i]);
BufferedReader in =
new BufferedReader(
new FileReader(fs[i]));
out.putNextEntry(new ZipEntry(fs[i]));
int c;
while((c=in.read())!=-1)
out.write(c);
in.close();
}
//关闭输出流
out.close();
System.out.println("Checksum::"+cs.getChecksum().getValue());
}catch(Exception e){
System.err.println(e);
}
}
/**
*<br>方法说明:解压缩Zip文件
*<br>输入参数:String fileName 解压zip文件名
*<br>返回类型:
*/
public void unZipFile(String fileName){
try{
System.out.println("读取ZIP文件........");
//文件输入流
FileInputStream fi =
new FileInputStream(fileName+".zip");
//输入流检查
CheckedInputStream csi = new CheckedInputStream(fi,new Adler32());
//输入流压缩
ZipInputStream in2 =
new ZipInputStream(
new BufferedInputStream(csi));
ZipEntry ze;
System.out.println("Checksum::"+csi.getChecksum().getValue());
//解压全部文件
while((ze = in2.getNextEntry())!=null){
System.out.println("Reading file "+ze);
int x;
while((x= in2.read())!=-1)
System.out.write(x);
}
in2.close();
}catch(Exception e){
System.err.println(e);
}
}
/**
*<br>方法说明:读取Zip文件列表
*<br>输入参数:String fileName zip文件名
*<br>返回类型:Vector 文件列表
*/
public Vector listFile(String fileName){
try{
String[] aRst=null;
Vector vTemp = new Vector();
//zip文件对象
ZipFile zf = new ZipFile(fileName+".zip");
Enumeration e = zf.entries();
while(e.hasMoreElements()){
ZipEntry ze2 = (ZipEntry)e.nextElement();
System.out.println("File: "+ze2);
vTemp.addElement(ze2);
}
return vTemp;
}catch(Exception e){
System.err.println(e);
return null;
}
}
/**
*<br>方法说明:主方法
*<br>输入参数:
*<br>返回类型:
*/
public static void main(String[] args){
try{
String fileName = args[0];
myZip myZip = new myZip();
myZip.ZipFiles(args);
myZip.unZipFile(fileName);
Vector dd = myZip.listFile(fileName);
System.out.println("File List: "+dd);
}catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
### 实现Java文件压缩与解压 #### 一、引言 在计算机科学领域,文件压缩与解压是一项非常实用的技术。它不仅能够减少文件占用的空间,提高存储效率,还能加速文件在网络中的传输速度。Java作为一种广泛使用的编程...
java 文件zip 压缩与解压 可以直接调用
Java压缩及解压tar、tar.z格式文件, 需要apache的包ant-1.7.1.jar 这个自己去搜索下下载
本示例着重讲解如何使用Java API来实现ZIP文件的压缩与解压功能,包括处理子目录和文件。以下将详细介绍相关知识点: 1. **Java档案API(java.util.zip)**: Java提供了`java.util.zip`包,它包含了处理压缩文件...
JAVA压缩解压JAVA压缩解压JAVA压缩解压JAVA压缩解压JAVA压缩解压
本文将深入探讨如何使用Java实现ZIP和RAR类型的压缩与解压操作,以及相关知识点。 首先,我们来看ZIP文件格式。ZIP是一种广泛使用的文件压缩格式,其在Java中的处理主要通过`java.util.zip`包。这个包提供了多个类...
字符串的压缩和解压,java语言编写,zip实现,代码编写
java压缩解压ZIP
java压缩解压文件
在Java编程中,处理文件的压缩和解压缩是常见的任务,尤其在数据传输、存储优化或者备份场景下。本文将详细讲解如何使用Java API来压缩和解压缩`.zip`、`.rar`和`.tar`这三种常见的文件格式。 首先,对于`.zip`文件...
GZ是一种常用的文件压缩格式,它利用了gzip程序进行压缩,而在Java中,我们可以使用`java.util.zip`包中的类来实现对GZ文件的压缩和解压缩操作。 在给出的代码中,有两个主要的方法:`testGzipOutput()`用于解压GZ...
在Java编程环境中,处理压缩和解压缩文件是一项常见的任务,特别是在数据存储、文件传输和备份等领域。本项目专注于使用Java实现带密码保护的ZIP文件的压缩和解压功能。这是一项安全措施,允许用户对敏感文件进行...
本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...
#### 一、Java压缩与解压技术概述 在Java中,进行文件的压缩和解压通常涉及到多个类库和技术。这些技术不仅能够帮助开发者有效地管理和处理大量的数据,还能够在网络传输过程中减少带宽的消耗。本篇文章将详细介绍...
### Java中压缩与解压——中文文件名乱码解决办法 #### 一、问题背景及原理分析 在Java中处理文件的压缩与解压时,经常会遇到中文文件名出现乱码的问题。这个问题主要源于Java中默认使用的编码方式与实际文件名...
本文将详细讲解如何使用Java来解压和压缩tar包,同时解决在处理中文文件名时可能出现的乱码问题,主要关注`javatar-2.5.jar`库中的功能以及`TarUtil.java`类的应用。 首先,`javatar-2.5.jar`是一个专门用于处理tar...
在Java程序中,你需要编写两个主要类:一个用于压缩,另一个用于解压。这两个类都需要维护字典状态,并按照上述步骤进行操作。同时,为了便于使用,可以设计一个主类来接收用户输入,调用压缩和解压类,并输出结果。...
Apache的java压缩(解压)文件jar包; jar包的名字有些别扭叫ant.jar
在Java中,我们可以使用`java.util.zip`包中的类,如`ZipOutputStream`和`ZipInputStream`来实现文件或目录的压缩与解压。下面将详细介绍这些知识点。 ### 1. `java.util.zip`包 这个包提供了处理多种压缩格式的类...
NULL 博文链接:https://zhenyong.iteye.com/blog/1576148