游客:
注册
|
登录
|
帮助
网友俱乐部
»
网络编程
»
JAVA教程
» [JAVA100例]040、压缩和解压文件
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
火狐浏览器,网上冲浪更快更爽更惬意
注册亚洲交友中心,找个人来同居吧!
7CODE查杀恶意代码,守护您的电脑
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题:
[基础]
[JAVA100例]040、压缩和解压文件
ljjk5
元帅
UID 46706
精华
1
积分 99426
帖子 49691
威望 554
金币 48489
热心 505
阅读权限 100
注册 2007-2-25
状态 离线
#1
使用道具
发表于 2007-12-28 18:47
资料
个人空间
主页
短消息
加为好友
[JAVA100例]040、压缩和解压文件
//文件名:myZip.java
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
);
BufferedReader in =
new BufferedReader(
new FileReader(fs
));
out.putNextEntry(new ZipEntry(fs
));
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)
//这里是写文件,write是以byte方式输出。
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();
}
}
}
网友
ljjk5
签名 - 网友社区
===
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-8-30 04:58
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP