在路上...
posts - 33, comments - 46, trackbacks - 0, articles - 2
导航
BlogJava
首页
新随笔
联系
聚合
管理
公告
时光荏苒,岁月流逝,仅以此纪念那一段走过来的开发岁月,希望哪天回首时,仍能想起一幕幕难忘的日子。
一个新的尝试,开始、而不知何时结束...
[BlogJava分站]
<
2007年10月
>
日
一
二
三
四
五
六
30
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
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(6)
给我留言
查看公开留言
查看私人留言
随笔分类
Extjs相关
ILOG规则引擎
JAVA相关(21)
PowerBuilder(1)
分享(2)
系统部署(2)
随笔档案
2013年10月 (1)
2013年9月 (1)
2013年4月 (1)
2012年3月 (1)
2012年1月 (6)
2011年12月 (2)
2011年7月 (1)
2011年6月 (1)
2011年1月 (2)
2009年10月 (1)
2008年7月 (1)
2008年6月 (4)
2008年1月 (1)
2007年10月 (2)
2007年9月 (1)
2007年4月 (1)
2007年1月 (1)
2006年9月 (1)
2005年12月 (1)
2005年10月 (1)
2005年9月 (1)
文章分类
java软件研究(2)
文章档案
2006年9月 (1)
2005年10月 (1)
网站链接
[cnblogs]在路上...
搜索
积分与排名
积分 - 148173
排名 - 422
最新评论
1. re: Oracle JDBC驱动与时间不见了的问题
多谢
--湘
2. re: smali文件语法参考
@个身体如
主要是破解别人的付费程序
--laisc
3. smali代码问题
评论内容较长,点击标题查看
--jasonkent27
4. re: smali文件语法参考
你们这帮鸟人又在修改别人程序据为己有吗?
--个身体如
5. re: smali文件语法参考
楼上的,这样改,寄存器使用数量:locals 4
--nansishan
阅读排行榜
1. smali文件语法参考(49873)
2. intellij idea使用tomcat开发时自动部署jndi数据源(12350)
3. Oracle整合BEA,WEBLogic的License可以免费下载了(11258)
4. WebLogic配置文件Config.xml中的{3DES}加密字符串的解密思路(8552)
5. Windows环境下面搭建Object C开发环境(7180)
评论排行榜
1. Oracle JDBC驱动与时间不见了的问题(9)
2. Oracle整合BEA,WEBLogic的License可以免费下载了(7)
3. 集成struts+spring的新思路(7)
4. Windows环境下面搭建Object C开发环境(5)
5. smali文件语法参考(5)
Zlib压缩算法在java与delphi之间的交互实现
Posted on 2007-10-10 10:35
在路上...
阅读(3457)
评论(3)
编辑
收藏
所属分类:
JAVA相关
一个典型应用中,使用delphi作为客户端,J2EE服务端,两者之间用XML作为数据交换,为了提高效率,对XML数据进行压缩,为此需要找到一种压缩/解压算法能够两个平台之间交互处理,使用ZLIB算法就是一个不错的解决方案。
1、JAVA实现
在JDK中,在java.util.zip包中已经内置了ZLIB的实现,示例代码如下:
1
//
解压
2
public
String decompressData(String encdata)
{
3
try
{
4
ByteArrayOutputStream bos
=
new
ByteArrayOutputStream();
5
InflaterOutputStream zos
=
new
InflaterOutputStream(bos);
6
zos.write(convertFromBase64(encdata));
7
zos.close();
8
return
new
String(bos.toByteArray());
9
}
catch
(Exception ex)
{
10
ex.printStackTrace();
11
return
"
UNZIP_ERR
"
;
12
}
13
}
14
15
//
压缩
16
public
String compressData(String data)
{
17
try
{
18
ByteArrayOutputStream bos
=
new
ByteArrayOutputStream();
19
DeflaterOutputStream zos
=
new
DeflaterOutputStream(bos);
20
zos.write(data.getBytes());
21
zos.close();
22
return
new
String(convertToBase64(bos.toByteArray()));
23
}
catch
(Exception ex)
{
24
ex.printStackTrace();
25
return
"
ZIP_ERR
"
;
26
}
27
}
2、DELPHI中的实现
在DELPHI中,有第3方的控件可以利用来实现压缩/解压,这里我们选择VCLZIP V3.04,可以从这里下载
http://www.vclzip.net
为了提高通用性,我们可以编写一个标准的DLL,就可以在Win32平台随意调用了,关键代码如下:
function
Cmip_CompressStr(txt: PChar): pchar; stdcall;
var
zip: TVclZip;
compr:
string
;
data: PChar;
begin
zip :
=
TVclZip.Create(nil);
compr :
=
zip.ZLibCompressString(txt);
data :
=
pchar(Base64EncodeStr(compr));
Result :
=
StrNew(data);
zip.Free
end
;
function
Cmip_DeCompressStr(txt: PChar): pchar; stdcall;
var
zip: TVCLUnZip;
compr:
string
;
data: PChar;
begin
zip :
=
TVCLUnZip.Create(nil);
compr :
=
zip.ZLibDecompressString(Base64DecodeStr(txt));
data :
=
StrNew(pchar(compr));
Result :
=
data;
zip.Free
end
;
在我们当前的项目中,采用的方案是Powerbuilder +DLL与J2EE平台进行xml数据交换的方式。
Feedback
#
re: Zlib压缩算法在java与delphi之间的交互实现
回复
更多评论
2007-10-11 07:14 by
大道自然
能详细解释一下是如何交换数据的吗?服务器端是做成Servlet?web service?还是其他的方式?
谢谢!
#
re: Zlib压缩算法在java与delphi之间的交互实现
回复
更多评论
2007-10-20 16:59 by
midea0978
web service不会觉得太麻烦了吗?就用Servlet或者struts action还更方便!
#
re: Zlib压缩算法在java与delphi之间的交互实现
回复
更多评论
2008-03-16 11:33 by
冬雷软件
怎么调用这些函数呢.
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
EAR文件结构
JAVA AWT处理图片时的错误
APK文件修改及编译打包备忘
smali文件语法参考
改用LiveWriter写日志看看
单独使用jboss的jndi provider
intellij idea使用tomcat开发时自动部署jndi数据源
JMX远程管理tomcat或weblogic
修改驱动解决SqlRowSet的Invalid scale size. Cannot be less than zero异常的处理办法
使用openssl生成自签名证书、配置SSL
Powered by:
BlogJava
Copyright © 在路上...