Java on Line
和java的日子!
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
8 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
<
2007年8月
>
日
一
二
三
四
五
六
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
31
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
陳東
閱讀(40898)
評論(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新聞
Chat2DB
C++博客
博問
管理
相關文章:
JDBC連接各種數據庫方法
將一個字符串里的數字,分割后進行排序
用java刪除文件夾里的所有文件
用java解壓文件夾
用java壓縮文件夾/文件
Powered by:
BlogJava
Copyright © 陳東
主站蜘蛛池模板:
呼和浩特市
|
伊通
|
长武县
|
荃湾区
|
河北省
|
景谷
|
SHOW
|
渭源县
|
平南县
|
神池县
|
南雄市
|
秦皇岛市
|
万盛区
|
莎车县
|
山东
|
诏安县
|
罗甸县
|
开鲁县
|
梅河口市
|
长泰县
|
龙南县
|
鄂州市
|
谷城县
|
西昌市
|
郴州市
|
惠州市
|
三门峡市
|
资阳市
|
无棣县
|
抚松县
|
镇赉县
|
孟村
|
中西区
|
广州市
|
桓台县
|
成安县
|
资中县
|
读书
|
徐闻县
|
丽江市
|
阜阳市
|