Terry.Li-彬
虚其心,可解天下之问;专其心,可治天下之学;静其心,可悟天下之理;恒其心,可成天下之业。
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
143 随笔 :: 344 文章 :: 130 评论 :: 0 Trackbacks
<
2024年11月
>
日
一
二
三
四
五
六
27
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
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(19)
给我留言
查看公开留言
查看私人留言
随笔分类
(107)
CA(16)
(rss)
Extremecomponents (1)
(rss)
ibatis(4)
(rss)
Jakarta(9)
(rss)
Java(19)
(rss)
Liferay(21)
(rss)
maven2(15)
(rss)
postgresql(2)
(rss)
sitemesh
(rss)
spring2.0
(rss)
struts2.0
(rss)
struts-menu(1)
(rss)
webservice(17)
(rss)
设计模式(2)
(rss)
随笔档案
(141)
2017年4月 (1)
2013年3月 (1)
2013年1月 (1)
2009年12月 (1)
2009年9月 (3)
2009年2月 (1)
2008年12月 (2)
2008年11月 (1)
2008年9月 (2)
2008年8月 (2)
2008年5月 (1)
2008年3月 (22)
2008年2月 (34)
2008年1月 (14)
2007年12月 (7)
2007年11月 (34)
2007年10月 (1)
2007年9月 (13)
文章分类
(284)
ActiveMQ(7)
(rss)
Ajax(5)
(rss)
Axis(21)
(rss)
BootStrap(4)
(rss)
cache(7)
(rss)
chat(1)
(rss)
css
(rss)
DataBase(5)
(rss)
Dwr(3)
(rss)
ejb3.0(4)
(rss)
ESB(3)
(rss)
ESB(4)
(rss)
flex3(1)
(rss)
Freemarker(2)
(rss)
Hibernate Search(2)
(rss)
ibatis + spring (11)
(rss)
java(44)
(rss)
javascript(8)
(rss)
JBoss(5)
(rss)
Jbpm(18)
(rss)
JBPM4(6)
(rss)
jetty
(rss)
JMS(6)
(rss)
JMX(1)
(rss)
JPA(1)
(rss)
jquery(7)
(rss)
Jsp(5)
(rss)
Liferay(5)
(rss)
Linux(12)
(rss)
Log(6)
(rss)
Maven2(10)
(rss)
MyBatis
(rss)
mysql(4)
(rss)
soa(1)
(rss)
soap(5)
(rss)
spring(7)
(rss)
Spring Security(2)
(rss)
SSH(3)
(rss)
struts2.0(7)
(rss)
svn(2)
(rss)
web service(20)
(rss)
WebWork(1)
(rss)
Web前端(2)
(rss)
wireless(1)
(rss)
wsdl(1)
(rss)
yav(1)
(rss)
报表(3)
(rss)
推荐引擎(2)
(rss)
模板(5)
(rss)
设计模式(2)
(rss)
通信(1)
(rss)
文章档案
(342)
2015年9月 (2)
2013年12月 (1)
2013年11月 (2)
2013年10月 (2)
2013年9月 (1)
2013年8月 (1)
2013年3月 (3)
2013年2月 (1)
2013年1月 (17)
2011年8月 (4)
2011年7月 (1)
2011年6月 (6)
2011年5月 (2)
2011年4月 (2)
2011年3月 (4)
2011年2月 (2)
2011年1月 (3)
2010年12月 (8)
2010年11月 (10)
2010年10月 (7)
2010年9月 (32)
2010年8月 (6)
2010年7月 (1)
2010年6月 (2)
2010年5月 (1)
2010年4月 (1)
2010年3月 (1)
2010年2月 (1)
2010年1月 (2)
2009年12月 (1)
2009年11月 (1)
2009年10月 (5)
2009年9月 (23)
2009年8月 (6)
2009年7月 (18)
2009年6月 (2)
2009年5月 (5)
2009年4月 (5)
2009年2月 (9)
2009年1月 (19)
2008年12月 (13)
2008年10月 (1)
2008年9月 (3)
2008年8月 (2)
2008年7月 (5)
2008年6月 (5)
2008年5月 (3)
2008年4月 (6)
2007年12月 (9)
2007年11月 (32)
2007年10月 (2)
2007年9月 (41)
相册
北京建工测试数据库脚本
我的相册
收藏夹
(58)
我的收藏(58)
(rss)
家装
★榻榻米卡座衣帽间★田园暖家硬装完毕上软装咯
淘金币韩版短款小棉袄甜美棉服拉链厚外套面包棉衣秋冬装女装新款
最新随笔
1. 身份证JS校验
2. MySQL导入.sql文件及常用命令
3. ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
4. Ajax Session Timeout 超时 处理
5. 忘掉jQuery,使用JavaScript原生API
6. Ehcache详细解读
7. How can I print SQL query result log with log4j?
8. repositories
9. ehcache 配置参数说明
10. OSChina架构中,依照“管理重于配置”的思路使用Servlet设计的MVC
11. class卸载、热替换和Tomcat的热部署的分析
12. 个性化推荐技术漫谈
13. 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
14. 一个类引发的回忆
15. 配置_Druid和Spring关联监控配置
16. AtomicInteger
17. spring通过annotation注册MBean到JMX
18. BootStrap入门教程 (四)
19. BootStrap入门教程 (三)
20. BootStrap入门教程 (二)
21. BootStrap入门教程 (一)
22. Linux centos 6.3 Tomcat Install
23. Linux centos 6.3 Nginx Install
24. Linux centos 6.3 Python Install
25. Linux centos 6.3 Redis Install
26. Linux centos 6.3 Mysql Install
27. Linux centos 6.3 Mysql slave Install
28. Linux centos 6.3 Lua Install
29. Linux centos 6.3 Memcached Install
30. Linux centos 6.3 Erlang Install
31. Linux centos 6.3 Graphicsmagick Install
32. Linux centos 6.3 Ejabberd Install
33. Linux centos 6.3 JDK Install
34. flex摄像头拍照 java上传到数据库 .
35. Nginx+Tomcat+Memcached共享session集群配置
36. 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词
37. linux下Nginx+tomcat整合的安装与配置
38. 从 iBatis 到 MyBatis - MyBatis 简明学习教程
39. Apache Http Server与Tomcat实现负载均衡和集群
40. linux+nginx+tomcat负载均衡,实现session同步
搜索
积分与排名
积分 - 739525
排名 - 61
最新评论
1. re: 配置_Druid和Spring关联监控配置
fchgvhbjnkmll
--hb
2. re: eclipse 属性文件,自动转为Unicode编码[未登录]
哈哈
--哈哈
3. re: Ehcache详细解读[未登录]
话说都是这一篇文章,有意思
--啊
4. re: Maven使用deploy命令部署构建
感谢!我也碰到这个问题了!
--曲奇饼
5. re: Apache Http Server与Tomcat实现负载均衡和集群[未登录]
讲的很详细,受教了
--林
6. re: 转载 高负载系统架构设计
顶,但是,在数据分离方面好像写的很模糊!
--nqfang
7. re: Ajax Session Timeout 超时 处理
sads
--11
8. 354554
684854986
--3498665
9. re: 将任意格式转换为JSON数据格式的工具类
["d":“气而去”]
--人
10. re: FreeMarker 自定义标签
评论内容较长,点击标题查看
--zuidaima
11. re: Maven使用deploy命令部署构建[未登录]
好,写的比较详细,按此配置成功。
--Anderson
12. re: BootStrap入门教程 (三)
评论内容较长,点击标题查看
--zuidaima
13. re: (转载)页面静态化(JSP动态页面转静态化)
@静态化
伪静态化,应该使用模板生成HTML
--libin2722
14. re: (转载)页面静态化(JSP动态页面转静态化)
这个不是静态化,就不要用静态化的标题吓人!!!
--静态化
15. re: BootStrap入门教程 (二)
评论内容较长,点击标题查看
--zuidaima
16. re: 权限控制:spring 3.0 security配置例子
谢谢,遇到了最后的问题,还好找到答案解决了~
--ZL
17. re: BootStrap入门教程 (一)
评论内容较长,点击标题查看
--zuidaima
18. re: BootStrap入门教程 (三)
评论内容较长,点击标题查看
--zuidaima
19. re: 配置_Druid和Spring关联监控配置[未登录]
sasa
--aaa
20. re: JAVA解析纯真IP地址库
你这个有多线程并发问题
--苏秦
21. re: flex摄像头拍照 java上传到数据库 .
评论内容较长,点击标题查看
--123yedddd
22. re: 在基于Spring及Hibernate应用程序中使用ETags降低带宽占用和服务器压力
评论内容较长,点击标题查看
--最代码
23. re: Apache Http Server与Tomcat实现负载均衡和集群
集群后,创建的 test1.jsp 放在哪儿?
--秦真
24. re: BootStrap入门教程 (一)
作为入门教程,连需要包含的css都不提。。。
--作为入门教程,连需要包含的css都不提。。。
25. re: BootStrap入门教程 (一)[未登录]
作为入门教程,连需要包含的css都不提。。。
--bluefield
26. re: url加密参数 (java版)
asd飞
--是电饭锅
27. re: 将JBoss启动做成Windows的系统服务
我的服务也起不来
--23
28. re: 测试-答对5道题的人是天才,答对4道的是帅才,答对3道的是将才,答对2道的是奇才,答对1道的是人才
3、冲
4、“亼”或者“亽”
5、129
--byl
29. re: JBPM数据库表说明
这些表全部手工创建吗?
--轻描淡写
30. re: 将JBoss启动做成Windows的系统服务
为什么我做的服务起不来呢?
--吴江
31. re: 利用开源组件制作验证码 Captcha
ggg
--ssss
32. re: 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词
麻烦 博主把dictionary.txt发给我吧,让我学习学习
1182787467@qq.com
谢谢
--love code
33. re: 权限控制:spring 3.0 security配置例子[未登录]
楼主真的很细心 我是在国外论坛上发现了同样的问题
--tommy
34. re: 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词
这是全的么,楼主?我导入到MyEclipse里好多错误呀,除了import包之外还有好多错,看不懂。。。
--yi
35. re: FreeMarker 自定义标签
感谢!
--四海
36. re: WebWork 2.2 + Tomcat 5.0 + Jdk 1.6 出现Provider org.apache.xalan.processor.TransformerFactoryImpl not found错误
我tomcat1.60+jdk1.60也出现这个问题,网上度了下,加个xalan.jar包就好了
--liuruliu
37. re: FreeMarker 自定义标签[未登录]
copy 别人文章也不带个链接.
--selina
38. re: 权限控制:spring 3.0 security配置例子[未登录]
最后那点确实坑爹啊。。
--123
39. re: 图片加载错误,显示默认图片
奋斗奋斗
--分段
40. re: JBPM数据库表说明[未登录]
非常感谢
--nicol
阅读排行榜
1. 打印出Ibatis最终的SQL语句(8709)
2. server-config.wsdd配置一例(8456)
3. 编写你自己的单点登录(SSO)服务 (8387)
4. Axis1.4 利用 deploy.wsdd 发布 server-config.wsdd文件(6977)
5. HashMap 、HashTable、HashSet的区别 (4906)
6. ClassNotFoundException: org.hibernate.hql.ast.HqlToken(4663)
7. Axis1.4 开发笔记(3716)
8. Liferay Portal二次开发指南(3647)
9. ibatis中文与like的问题 (3465)
10. 一个服务返回一个ArrayList,如何使用Axis序列化/反序列化啊(3447)
11. Maven2 常用命令(3339)
12. 使用maven2 打ear包(3215)
13. Apache Maven 2 简介(最全的文档)(3201)
14. httpclient中MultipartPostMethod类上传文件(2909)
15. Double:双精度类型(2453)
16. 使用Java实现CA(一)(2349)
17. JAVA中SSL证书认证通讯-Client(2329)
18. 深入了解Java ClassLoader、Bytecode 、ASM、cglib (2265)
19. 在Struts2.0中如何得到绝对路径(2208)
20. 将JBoss启动做成Windows的系统服务(2046)
21. 一个可以在页面上随意画线、多边形、圆,填充等功能的js (1965)
22. Struts2.0 中配置 Struts-Menu(1923)
23. JSF最佳入门(1882)
24. 深入浅出Liferay Portal (4) (1806)
25. 教程--开始使用Maven下(1725)
26. portal专题(一)用liferay server简单开发portlet快速上手(1594)
27. 深入浅出Liferay Portal (10) (1587)
28. 用axis发布webservices(一) (1529)
29. 深入浅出Liferay Portal (12) (1495)
30. 深入浅出Liferay Portal (3) (1472)
31. mvn功能简介 (1446)
32. Liferay Portal学习笔记之(五):开发主题风格theme(1430)
33. 使用Java实现CA(二)(1403)
34. Postgresql 不能远程连接(1394)
35. Liferay Portal学习笔记(三):自定义页面布局Template(1393)
36. liferay 部署(1381)
37. 深入浅出Liferay Portal (8) (1363)
38. 深入浅出Liferay Portal (2) (1360)
39. Problem with Sybase, PostgreSQL and Timestamp columns(1358)
40. 调用IE内部的打印控件来实现打印功能(1344)
评论排行榜
1. ClassNotFoundException: org.hibernate.hql.ast.HqlToken(8)
2. 测试-答对5道题的人是天才,答对4道的是帅才,答对3道的是将才,答对2道的是奇才,答对1道的是人才(5)
3. 用axis发布webservices(一) (3)
4. Liferay Portal学习笔记(一):安装(3)
5. JAVA中SSL证书认证通讯-Client(3)
6. Tomcat 5.5.2 下部署 Liferay 4.4.1(2)
7. 将JBoss启动做成Windows的系统服务(2)
8. 深入浅出Liferay Portal (12) (2)
9. 打印出Ibatis最终的SQL语句(2)
10. HashMap 、HashTable、HashSet的区别 (2)
11. java线程综述 (2)
12. Axis1.4 开发笔记(2)
13. 深入了解Java ClassLoader、Bytecode 、ASM、cglib (1)
14. 代理模式(1)
15. java对word、excel、pdf等操作综合文章(1)
16. Axis1.4 利用 deploy.wsdd 发布 server-config.wsdd文件(1)
17. 使用maven2 打ear包(1)
18. 深入浅出Liferay Portal (11) (1)
19. 深入浅出Liferay Portal (10) (1)
20. 转载 高负载系统架构设计(1)
21. 论坛灌水机 -- HTTPClient(1)
22. Apache Maven 2 简介(最全的文档)(1)
23. maven2完全使用手册(1)
24. 在Struts2.0中如何得到绝对路径(1)
25. Java深入:在Eclipse中如何利用Maven (0)
26. 教程--开始使用Maven下(0)
27. Maven2快速入门教程 (0)
28. 调用IE内部的打印控件来实现打印功能(0)
29. ibatis中文与like的问题 (0)
30. Chapter 1. Maven2(0)
31. Maven2 体验(0)
32. 1.1. Maven2 体验(0)
33. Maven2.0:编译、测试、部署、运行(0)
34. Maven2 常用命令(0)
35. Struts2.0 中配置 Struts-Menu(0)
36. maven2.0学习笔记 (0)
37. mvn功能简介 (0)
38. Maven中文手册 (0)
39. Maven使用手册(0)
40. maven翻译一结 (0)
压缩/解压缩zip包处理
package
com.newegg.lab.util;
import
java.io.BufferedOutputStream;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileNotFoundException;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.io.InputStream;
import
java.io.OutputStream;
import
java.util.Enumeration;
import
java.util.zip.ZipEntry;
import
java.util.zip.ZipFile;
import
java.util.zip.ZipOutputStream;
//
使用apache的api不存在压缩文件名乱码问题(该jar包在ant中)
//
import org.apache.tools.zip.ZipEntry;
//
import org.apache.tools.zip.ZipFile;
//
import org.apache.tools.zip.ZipOutputStream;
/** */
/**
*/
/** */
/**
* 压缩/解压缩zip包处理类
*
*
@author
terry.b.li
* @date 2--2
*/
public
class
ZipUtil
{
/** */
/**
*/
/** */
/**
* 压缩
*
*
@param
zipFileName
* 压缩产生的zip包文件名--带路径,如果为null或空则默认按文件名生产压缩文件名
*
@param
relativePath
* 相对路径,默认为空
*
@param
directory
* 文件或目录的绝对路径
*
@throws
FileNotFoundException
*
@throws
IOException
*
@author
terry.b.li
*/
public
static
void
zip(String zipFileName, String relativePath,
String directory)
throws
FileNotFoundException, IOException
{
String fileName
=
zipFileName;
if
(fileName
==
null
||
fileName.trim().equals(
""
))
{
File temp
=
new
File(directory);
if
(temp.isDirectory())
{
fileName
=
directory
+
"
.zip
"
;
}
else
{
if
(directory.indexOf(
"
.
"
)
>
0
)
{
fileName
=
directory.substring(
0
, directory
.lastIndexOf(
"
.
"
))
+
"
zip
"
;
}
else
{
fileName
=
directory
+
"
.zip
"
;
}
}
}
ZipOutputStream zos
=
new
ZipOutputStream(
new
FileOutputStream(fileName));
try
{
zip(zos, relativePath, directory);
}
catch
(IOException ex)
{
throw
ex;
}
finally
{
if
(
null
!=
zos)
{
zos.close();
}
}
}
/** */
/**
*/
/** */
/**
* 压缩
*
*
@param
zos
* 压缩输出流
*
@param
relativePath
* 相对路径
*
@param
absolutPath
* 文件或文件夹绝对路径
*
@throws
IOException
*
@author
terry.b.li
*/
private
static
void
zip(ZipOutputStream zos, String relativePath,
String absolutPath)
throws
IOException
{
File file
=
new
File(absolutPath);
if
(file.isDirectory())
{
File[] files
=
file.listFiles();
for
(
int
i
=
0
; i
<
files.length; i
++
)
{
File tempFile
=
files[i];
if
(tempFile.isDirectory())
{
String newRelativePath
=
relativePath
+
tempFile.getName()
+
File.separator;
createZipNode(zos, newRelativePath);
zip(zos, newRelativePath, tempFile.getPath());
}
else
{
zipFile(zos, tempFile, relativePath);
}
}
}
else
{
zipFile(zos, file, relativePath);
}
}
/** */
/**
*/
/** */
/**
* 压缩文件
*
*
@param
zos
* 压缩输出流
*
@param
file
* 文件对象
*
@param
relativePath
* 相对路径
*
@throws
IOException
*
@author
terry.b.li
*/
private
static
void
zipFile(ZipOutputStream zos, File file,
String relativePath)
throws
IOException
{
ZipEntry entry
=
new
ZipEntry(relativePath
+
new
String(file.getName().getBytes(
"
ISO-8859-1
"
)));
zos.putNextEntry(entry);
zos.setComment(
"
this is zip file luckystar
"
);
InputStream is
=
null
;
try
{
is
=
new
FileInputStream(file);
int
BUFFERSIZE
=
2
<<
10
;
int
length
=
0
;
byte
[] buffer
=
new
byte
[BUFFERSIZE];
while
((length
=
is.read(buffer,
0
, BUFFERSIZE))
>=
0
)
{
zos.write(buffer,
0
, length);
}
zos.flush();
zos.closeEntry();
}
catch
(IOException ex)
{
throw
ex;
}
finally
{
if
(
null
!=
is)
{
is.close();
}
}
}
/** */
/**
*/
/** */
/**
* 创建目录
*
*
@param
zos
* zip输出流
*
@param
relativePath
* 相对路径
*
@throws
IOException
*
@author
terry.b.li
*/
private
static
void
createZipNode(ZipOutputStream zos, String relativePath)
throws
IOException
{
ZipEntry zipEntry
=
new
ZipEntry(relativePath);
zos.putNextEntry(zipEntry);
zos.closeEntry();
}
/** */
/**
*/
/** */
/**
* 解压缩zip包
*
*
@param
zipFilePath
* zip文件路径
*
@param
targetPath
* 解压缩到的位置,如果为null或空字符串则默认解压缩到跟zip包同目录跟zip包同名的文件夹下
*
@throws
IOException
*
@author
terry.b.li
*/
public
static
void
unzip(String zipFilePath, String targetPath)
throws
IOException
{
OutputStream os
=
null
;
InputStream is
=
null
;
ZipFile zipFile
=
null
;
try
{
zipFile
=
new
ZipFile(zipFilePath);
String directoryPath
=
""
;
if
(
null
==
targetPath
||
""
.equals(targetPath))
{
directoryPath
=
zipFilePath.substring(
0
, zipFilePath
.lastIndexOf(
"
.
"
));
}
else
{
directoryPath
=
targetPath;
}
//
Enumeration entryEnum = zipFile.getEntries();
Enumeration entryEnum
=
zipFile.entries();
if
(
null
!=
entryEnum)
{
ZipEntry zipEntry
=
null
;
while
(entryEnum.hasMoreElements())
{
zipEntry
=
(ZipEntry) entryEnum.nextElement();
if
(zipEntry.isDirectory())
{
directoryPath
=
directoryPath
+
File.separator
+
zipEntry.getName();
System.out.println(directoryPath);
continue
;
}
if
(zipEntry.getSize()
>
0
)
{
//
文件
File targetFile
=
FileUtil.buildFile(directoryPath
+
File.separator
+
zipEntry.getName(),
false
);
os
=
new
BufferedOutputStream(
new
FileOutputStream(
targetFile));
is
=
zipFile.getInputStream(zipEntry);
byte
[] buffer
=
new
byte
[
406
];
int
readLen
=
0
;
while
((readLen
=
is.read(buffer,
0
,
4096
))
>=
0
)
{
os.write(buffer,
0
, readLen);
}
os.flush();
os.close();
}
else
{
//
空目录
FileUtil.buildFile(directoryPath
+
File.separator
+
zipEntry.getName(),
true
);
}
}
}
}
catch
(IOException ex)
{
throw
ex;
}
finally
{
if
(
null
!=
zipFile)
{
zipFile
=
null
;
}
if
(
null
!=
is)
{
is.close();
}
if
(
null
!=
os)
{
os.close();
}
}
}
public
static
void
main(String[] args)
{
try
{
ZipUtil.zip(
"
c:\\test.zip
"
,
""
,
"
C:\\Documents and Settings\\Administrator\\桌面\\新建文件夹
"
);
System.out.println(
"
OK
"
);
}
catch
(FileNotFoundException e)
{
//
TODO Auto-generated catch block
e.printStackTrace();
}
catch
(IOException e)
{
//
TODO Auto-generated catch block
e.printStackTrace();
}
}
}
posted on 2008-12-07 11:03
礼物
阅读(747)
评论(0)
编辑
收藏
所属分类:
java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
纯真IP数据库格式详解
java读取纯真IP数据库QQwry.dat的源代码
图片截取和缩略
spring任务调度方法之Quartz
使用JMeter进行性能测试
(原)Proxool 连接池
(原)Java 类访问 URI
(转载)应用架构设计“防火”经验分享
(转载)各种架构图汇总!
正则表达式30分钟入门教程
Powered by:
BlogJava
Copyright © 礼物