用java.util.zip实现对数据的压缩
2008-07-26 14:25
239 查看
Java提供了java.util.zip包用来兼容ZIP格式的数据压缩。它提供了一系列的类用来读取,创建,修改ZIP格式的文件。
其中主要的类:
ZipEntry 存储ZIP实体
ZipInputStream 一个输入过滤流,用来读取ZIP格式文件中的文件
ZipOutputStream 一个输出过滤流,用来向ZIP格式文件口写入文件
下面的程序演示了怎样利用java.util.zip包实现数据的压缩:
/**
* author suqiang
* create on 2008-7-26
*/
import java.io.*;
import java.util.zip.*;
public class Zip {
public static final int BUFFER = 1024;
public static void main(String[] args) {
try {
FileOutputStream dest = new FileOutputStream("C://SuQiang.zip");
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
putToZip(new File("C://SuQiang"), out, "");
out.close();
}catch (FileNotFoundException e1) {
e1.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
/**
* put file(include directory) to zip file
* @param file:The file to be zipped
* @param out:The zipped file
* @param dir
* @throws IOException
*/
private static void putToZip(File file,ZipOutputStream out, String dir) throws IOException{
if(file.isDirectory()){
File[] files = file.listFiles();
dir = dir + (dir.length()==0 ?"":"/")+file.getName();
for(int i=0;i<files.length;i++)
putToZip(files[i],out,dir);
}else{
byte[]data = new byte[BUFFER];
FileInputStream fi = new FileInputStream(file);
BufferedInputStream origin = new BufferedInputStream(fi,BUFFER);
dir = dir.length()==0?"":dir+"/"+ file.getName();
ZipEntry entry = new ZipEntry(dir);
out.putNextEntry(entry);
int count;
while((count = origin.read(data,0,BUFFER))!= -1)
out.write(data,0,count);
origin.close();
fi.close();
}
}
}
其中主要的类:
ZipEntry 存储ZIP实体
ZipInputStream 一个输入过滤流,用来读取ZIP格式文件中的文件
ZipOutputStream 一个输出过滤流,用来向ZIP格式文件口写入文件
下面的程序演示了怎样利用java.util.zip包实现数据的压缩:
/**
* author suqiang
* create on 2008-7-26
*/
import java.io.*;
import java.util.zip.*;
public class Zip {
public static final int BUFFER = 1024;
public static void main(String[] args) {
try {
FileOutputStream dest = new FileOutputStream("C://SuQiang.zip");
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
putToZip(new File("C://SuQiang"), out, "");
out.close();
}catch (FileNotFoundException e1) {
e1.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
/**
* put file(include directory) to zip file
* @param file:The file to be zipped
* @param out:The zipped file
* @param dir
* @throws IOException
*/
private static void putToZip(File file,ZipOutputStream out, String dir) throws IOException{
if(file.isDirectory()){
File[] files = file.listFiles();
dir = dir + (dir.length()==0 ?"":"/")+file.getName();
for(int i=0;i<files.length;i++)
putToZip(files[i],out,dir);
}else{
byte[]data = new byte[BUFFER];
FileInputStream fi = new FileInputStream(file);
BufferedInputStream origin = new BufferedInputStream(fi,BUFFER);
dir = dir.length()==0?"":dir+"/"+ file.getName();
ZipEntry entry = new ZipEntry(dir);
out.putNextEntry(entry);
int count;
while((count = origin.read(data,0,BUFFER))!= -1)
out.write(data,0,count);
origin.close();
fi.close();
}
}
}
相关文章推荐
- JAVA实现压缩文件的方法(使用java.util.zip.*)
- 使用java.util.zip实现zip压缩和解压
- 使用java.util.zip实现zip压缩和解压
- 利用JAVA API函数实现数据的压缩与解压缩
- JAVA实现实用的ZIP压缩与解压
- java实现zip压缩文件
- java实现 zip压缩文件 三种方法
- java web 实现把文件夹下的所有文件压缩成zip并实现下载(原文链接)http://blog.csdn.net/sxdtzhaoxinguo/article/details/20550537)
- Android 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- Java 基于java.util.zip类压缩解压Zip文件
- JAVA实现实用的ZIP压缩与解压
- java下实现压缩数据存取
- 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- java压缩与解压缩(1)使用java.util.zip
- java实现zip的压缩和解压(支持中文文件名)
- Java实现zip压缩多个文件下载
- 三个利用Java实现zip压缩/解压缩方法
- java实现zip压缩文件
- java实现文件压缩下载----压缩下载zip
- java中ant包中的org.apache.tools.zip实现压缩和解压缩