压缩解压
发布日期:2021-05-06 20:24:13 浏览次数:8 分类:技术文章

本文共 2059 字,大约阅读时间需要 6 分钟。

package KOBE;

import java.io.File;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

public class zipys {

static void compress() {
File bys=new File(“zip”);
File ysb=new File(“mr.zip”);
try {
FileOutputStream fo=new FileOutputStream(ysb); //输出到ysb文件中
ZipOutputStream zo=new ZipOutputStream(fo); //感觉是:压缩fo。
if(bys.isDirectory()) {
for(File f:bys.listFiles()) {
addentry(zo, “”, f);
}
}else {
addentry(zo, “”, bys);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static void addentry(ZipOutputStream zo,String base,File bys) { //创建条目的方法
if(bys.isDirectory()) {
for(File file:bys.listFiles()) {
addentry(zo, base+bys.getName()+File.separator,file);
}
}else { //压缩的方法
byte by[]=new byte[1024];
try {
FileInputStream fi=new FileInputStream(bys);
int count=-1;
zo.putNextEntry(new ZipEntry(base+bys.getName()));
while((count=fi.read(by))!=-1) {
zo.write(by);
zo.flush();
}
zo.closeEntry();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static void decompress() {
File dir=new File(“zip2”);
File yuan=new File(“qyb.zip”);
byte b[]=new byte[1024];
try {
FileInputStream fi=new FileInputStream(yuan);
ZipInputStream zis=new ZipInputStream(fi);
while(true) {
ZipEntry en=zis.getNextEntry();
File f=new File(dir,en.getName()) ; //把创建的条目,放到dir文件中
if(!f.getParentFile().exists()) {
f.getParentFile().mkdirs();
}
int count=-1;
FileOutputStream fo=new FileOutputStream(f);
while((count=zis.read(b))!=-1) {
fo.write(b);
fo.flush();
}
fo.close();
zis.closeEntry();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
decompress();
}
}

上一篇:2.2字符串
下一篇:一个文本框,里面加了监听

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年03月13日 21时50分51秒