Java on Line
和java的日子!
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
8 随笔 :: 0 文章 :: 28 评论 :: 0 Trackbacks
<
2007年11月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
公告
谢谢您的关注!!!
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
(8)
Java基础(5)
(rss)
Java收集
(rss)
个人随笔(1)
(rss)
开发收集(2)
(rss)
随笔档案
(8)
2008年4月 (2)
2008年3月 (1)
2007年10月 (1)
2007年9月 (1)
2007年8月 (3)
相关连接
expert
struts2学习
Sun中国技术社区
我的Blog
日期控件
搜索
最新评论
1. re: 用java压缩文件夹/文件
YASUO
--XURUIYANG
2. re: 用java压缩文件夹/文件
压缩文件夹时,有问题吧,会多出一个文件夹来。
--路人
3. re: 用java压缩文件夹/文件
@ne_akari
你个二逼,自己好好看看再说
--路人
4. re: 用java删除文件夹里的所有文件[未登录]
thanks.
--tao
5. 写的真不错
写的真不错,代码拿出来就能执行,感谢感谢啊!
--沈坤林
用java压缩文件夹/文件
压缩文件夹代码:
import
java.io.File;
import
org.apache.tools.zip.ZipOutputStream;
//
这个包在ant.jar里,要到官方网下载
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.util.zip.ZipInputStream;
import
java.util.zip.ZipEntry;
public
class
CompressBook
{
public
CompressBook()
{}
/**/
/*
* inputFileName 输入一个文件夹
* zipFileName 输出一个压缩文件夹
*/
public
void
zip(String inputFileName)
throws
Exception
{
String zipFileName
=
"
c:\\test.zip
"
;
//
打包后文件名字
System.out.println(zipFileName);
zip(zipFileName,
new
File(inputFileName));
}
private
void
zip(String zipFileName, File inputFile)
throws
Exception
{
ZipOutputStream out
=
new
ZipOutputStream(
new
FileOutputStream(zipFileName));
zip(out, inputFile,
""
);
System.out.println(
"
zip done
"
);
out.close();
}
private
void
zip(ZipOutputStream out, File f, String base)
throws
Exception
{
if
(f.isDirectory())
{
File[] fl
=
f.listFiles();
out.putNextEntry(
new
org.apache.tools.zip.ZipEntry(base
+
"
/
"
));
base
=
base.length()
==
0
?
""
: base
+
"
/
"
;
for
(
int
i
=
0
; i
<
fl.length; i
++
)
{
zip(out, fl[i], base
+
fl[i].getName());
}
}
else
{
out.putNextEntry(
new
org.apache.tools.zip.ZipEntry(base));
FileInputStream in
=
new
FileInputStream(f);
int
b;
System.out.println(base);
while
( (b
=
in.read())
!=
-
1
)
{
out.write(b);
}
in.close();
}
}
public
static
void
main(String [] temp)
{
CompressBook book
=
new
CompressBook();
try
{
book.zip(
"
c:\\c
"
);
//
你要压缩的文件夹
}
catch
(Exception ex)
{
ex.printStackTrace();
}
}
}
压缩文件代码:
import
java.io.
*
;
import
java.util.zip.
*
;
//
ZipOutputStream这个流在这里
import
java.util.
*
;
public
class
ZipOutputStreamTest
{
public
static
void
main(String[] args)
throws
Exception
{
File f
=
new
File(
"
a.jpg
"
);
FileInputStream fis
=
new
FileInputStream(f);
BufferedInputStream bis
=
new
BufferedInputStream(fis);
byte
[] buf
=
new
byte
[
1024
];
int
len;
FileOutputStream fos
=
new
FileOutputStream(f.getName()
+
"
.zip
"
);
BufferedOutputStream bos
=
new
BufferedOutputStream(fos);
ZipOutputStream zos
=
new
ZipOutputStream(bos);
//
压缩包
ZipEntry ze
=
new
ZipEntry(f.getName());
//
这是压缩包名里的文件名
zos.putNextEntry(ze);
//
写入新的 ZIP 文件条目并将流定位到条目数据的开始处
while
((len
=
bis.read(buf))
!=-
1
)
{
zos.write(buf,
0
,len);
zos.flush();
}
bis.close();
zos.close();
}
}
posted on 2007-08-24 00:33
陈东
阅读(40867)
评论(24)
编辑
收藏
所属分类:
Java基础
评论
#
re: 用java压缩文件夹/文件[未登录]
2007-11-10 14:36
ad
不错 谢谢了
回复
更多评论
#
re: 用java压缩文件夹/文件
2008-01-27 22:54
阿
试过,真不错,谢谢了.
回复
更多评论
#
re: 用java压缩文件夹/文件
2008-06-23 18:49
flymz
我用java.util.zip.ZipOutputStream;这个包也可以压缩!
回复
更多评论
#
re: 用java压缩文件夹/文件
2008-10-12 21:17
xh
可以集成进jdk了
回复
更多评论
#
re: 用java压缩文件夹/文件
2009-03-06 09:31
sem
非常感谢!
回复
更多评论
#
re: 用java压缩文件夹/文件
2010-07-14 15:44
ne_akari
这代码写的真不规范。
把所有异常全都抛出去,算什么回事。
in.close();
这句代码,从语法上说:变量in明明是个局部变量,怎么会在代码块外面关闭。
从逻辑上说:不管是在处理文件夹还是文件,都要执行,那是什么逻辑。
博主最好能做个修改再放出来,以免误导别人。
回复
更多评论
#
re: 用java压缩文件夹/文件
2010-11-16 13:25
ww
@flymz
碰到中文就会有乱码 用这个
回复
更多评论
#
re: 用java压缩文件夹/文件[未登录]
2010-11-19 17:16
test
@ne_akari
喷子?有异常了不抛出留着干什么?
回复
更多评论
#
re: 用java压缩文件夹/文件
2011-06-15 12:47
tye
中文乱码
回复
更多评论
#
re: 用java压缩文件夹/文件
2011-09-14 09:44
eppen
@ne_akari
作为基类应该抛出异常,业务类负责捕获并定制错误消息
回复
更多评论
#
re: 用java压缩文件夹/文件
2011-10-03 11:35
易元
总得处理一下了啊,各种异常都往上抛,下边不处理,抛到上边也不处理,这也叫异常处理吗???这只不过是编译器不报错罢了。
回复
更多评论
#
re: 用java压缩文件夹/文件
2011-11-15 22:04
fskjb01
@ne_akari
人家只是说清楚问题(不清楚看标题),而把不相干的省略下而已,你这么多意见干嘛!!
回复
更多评论
#
re: 用java压缩文件夹/文件
2011-12-15 16:44
hello223
瞎说八道
回复
更多评论
#
re: 用java压缩文件夹/文件
2012-04-28 12:40
路人
@ne_akari
当然要抛出去了异常吃了 别人都看不到才不规范呢
回复
更多评论
#
re: 用java压缩文件夹/文件
2012-05-08 15:59
t
你看错了吧,博主只不过{}位置对应错了,in是没问题的!
else {
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
System.out.println(base);
while ( (b = in.read()) != -1) {
out.write(b);
}
in.close();
}
回复
更多评论
#
re: 用java压缩文件夹/文件[未登录]
2012-12-15 15:10
小菜鸟
中文咋办
回复
更多评论
#
re: 用java压缩文件夹/文件
2013-03-14 14:34
forecle
人家只给你个示例,具体的你自已去写啊,想得到直接就能用的,你也真够脸皮厚的!没本事!
回复
更多评论
#
re: 用java压缩文件夹/文件[未登录]
2013-05-10 23:49
我
没有注释,苦逼啊。。。
回复
更多评论
#
回复@ne_akari
2013-07-04 21:15
asd
@ne_akari
你就是个纯傻 逼 还喷别人。。要别人写好再放出来
你自己看仔细了再说人家
回复
更多评论
#
re: 用java压缩文件夹/文件[未登录]
2013-07-23 09:20
张三
@tye
http://wlh.iteye.com/blog/134451
这个链接里面的不会乱码
回复
更多评论
#
写的真不错
2013-07-25 17:50
沈坤林
写的真不错,代码拿出来就能执行,感谢感谢啊!
回复
更多评论
#
re: 用java压缩文件夹/文件
2014-04-22 15:35
路人
@ne_akari
你个二逼,自己好好看看再说
回复
更多评论
#
re: 用java压缩文件夹/文件
2014-05-08 21:24
路人
压缩文件夹时,有问题吧,会多出一个文件夹来。
回复
更多评论
#
re: 用java压缩文件夹/文件
2015-03-28 16:57
XURUIYANG
YASUO
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
JDBC连接各种数据库方法
将一个字符串里的数字,分割后进行排序
用java删除文件夹里的所有文件
用java解压文件夹
用java压缩文件夹/文件
Powered by:
BlogJava
Copyright © 陈东