package com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Zipper {
private String zipTarget;
private String zipSource;
public Zipper(String zipTarget, String zipSource) {
super();
this.zipTarget = zipTarget;
this.zipSource = zipSource;
}
public void compress(){ //压缩
try {
FileOutputStream fos = new FileOutputStream(zipTarget);
ZipOutputStream zos = new ZipOutputStream(fos);
zos.setLevel(9);
File file = new File(zipSource);
if(file.isDirectory()){
String[] fileList = file.list();
for(int i=0;i<fileList.length;i++){
ZipEntry ze = new ZipEntry(fileList[i]);
System.out.println("正在压缩文件"+fileList[i]);
FileInputStream fis = new FileInputStream(file+"\\"+fileList[i]);
zos.putNextEntry(ze);
int c = -1;
while((c = fis.read()) != -1){
zos.write(c);
}
fis.close();
}
}
zos.closeEntry();
zos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Zipper z = new Zipper("history.zip", "D:\\文库资料\\IT笔试题");
z.compress();
}
}
解压缩
package com;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class UnZipper { //解压缩
private String zipSource;
public UnZipper(String zipSource) {
super();
this.zipSource = zipSource;
}
public void upCompress(){
try {
ZipFile zf = new ZipFile(zipSource); //用于创建一个ZIP格式压缩文件的对象,其作用类似于文件描述File类
Enumeration es = zf.entries(); //获得压缩包内文件列表
System.out.println("开始解压缩...");
while(es.hasMoreElements()){
ZipEntry ze = (ZipEntry)es.nextElement();
System.out.println("当前解压文件为:"+ze.getName());
if(ze.isDirectory()){
File ff = new File("newZip",ze.getName());
ff.mkdirs();
}
else{
InputStream in = zf.getInputStream(ze);
File ff = new File("newZip",ze.getName());
File fp = ff.getParentFile();
fp.mkdirs();
FileOutputStream fos = new FileOutputStream(ff);
int c;
while((c=in.read()) != -1)
fos.write(c);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new UnZipper("history.zip").upCompress();
}
}