java_zlib_资料
1、网页资料
1.1、http://bbs.csdn.net/topics/190020986
1.2、
http://cdn.verydemo.com/demo_c89_i166794.html
http://blog.csdn.net/hexingyeyun/article/details/8678154
1.3、
http://www.lai18.com/content/2088054.html
http://www.jb51.net/article/95073.htm
1.4、Delphi external 使用 ?.obj中的函数:http://bbs.csdn.net/topics/60347700
2、我的测试代码
2.1、
procedure TForm1.Button2Click(Sender: TObject);
var cs :TCompressionStream;
ms :TMemoryStream;
pc :PChar;
buffer :PCHar;
i :integer;
begin
pc := 'Test123456';
ms := TMemoryStream.Create;
cs := TCompressionStream.Create(clMax, ms); // (clNone, clFastest, clDefault, clMax);
cs.Write(pc[], strlen(pc));
cs.Free;
Memo1.Lines.Add('-->'+inttostr(ms.size)); GetMem(buffer, ms.size);
ms.Read(buffer[], ms.size); for i:= to ms.size do
Memo1.Lines.Add(inttostr(integer(buffer[i])));
end; procedure TForm1.Button3Click(Sender: TObject);
var
zip: TVclZip;
compr: string;
data: PChar;
txt :PChar;
arr :array[..] of byte;
iOut :integer;
p :pointer;
i :integer;
begin
txt := 'Test123456';
iOut := ;
zip := TVclZip.Create(nil);
for i:= to do
Memo1.Lines.Add(inttostr(integer(arr[i]))); p := nil;
zip.ZLibCompressBuffer(txt, strlen(txt), p, iOut);
zip.Free; Memo1.Lines.Add('-->'+inttostr(iOut)); for i:= to iOut- do
Memo1.Lines.Add(inttostr(integer(PChar(p)[i])));
end;
2.2、
package str; import java.io.ByteArrayOutputStream;
import java.sql.ResultSet;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.InflaterOutputStream; public class TstrTest
{
public static void main(String[] args) throws Exception
{
// String str = "退出";
//
// byte[] bytesGBK = str.getBytes("gbk");
// for (int i=0; i<bytesGBK.length; i++)
// System.out.print(String.format("%02X ", bytesGBK[i]));
// System.out.println();
//
// byte[] bytesUTF8 = str.getBytes("utf-8");
// for (int i=0; i<bytesUTF8.length; i++)
// System.out.print(String.format("%02X ", bytesUTF8[i])); ByteArrayOutputStream bao = new ByteArrayOutputStream();
//InflaterOutputStream ios = new InflaterOutputStream(bao);
DeflaterOutputStream dos = new DeflaterOutputStream(bao);
String str = "Test123456";
dos.write(str.getBytes("iso-8859-1"));
dos.close();
byte[] bytes = bao.toByteArray(); for (int i=0; i<bytes.length; i++)
System.out.println(i+" : " + ((int)bytes[i] & 0xFF));
//SevenZArchiveEntry ss; System.out.println();
bytes = Compress(str.getBytes("iso-8859-1"));
for (int i=0; i<bytes.length; i++)
System.out.println(i+" : " + ((int)bytes[i] & 0xFF));
} public static byte[] Compress(byte[] _bytes) throws Exception
{
if (_bytes == null || _bytes.length == 0)
return null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(_bytes);
gzip.close();
return out.toByteArray();
}
}
ZC: 仔细对比 java代码中 zlib和gzip 压缩出来的数据 其实是一样的,只是 头部&尾部不同而已,也印证了上面 网页资料1.3 中的说法
3、
java_zlib_资料的更多相关文章
- Vim新手入门资料和一些Vim实用小技巧
一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为阿里巴巴高级技术专 ...
- Git入门资料汇总
Git是一个非常好用的版本控制工具,同时,它也是一个相对比较复杂的工具,想要掌握它还是需要花一番功夫的.网络上关于Git的入门资料已经很多了,我就不再重复了,直接把我学习的文章放在这里. Git详解 ...
- MVC5 网站开发之七 用户功能 3用户资料的修改和删除
这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了.主要用到两个action "Modify"和& ...
- webapi的学习资料
猿教程_-webapi教程-WebAPI教程 猿教程_-webapi教程-Web API概述 猿教程_-webapi教程-新建Web Api项目 猿教程_-webapi教程-测试Web API 猿教程 ...
- 人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]
说明:这个贴用于收集笔者能力范围内收集收藏并认为有用的资料,方便各方参考,免去到处找寻之苦,提升信息的交叉引用价值.仅供参考,不作为必然的推荐倾向.如涉及版权等问题请相关人员联系笔者,谢谢. |博客| ...
- python教程与资料
网上有个人写的python快速教程,非常好.比看书好多了.猛击下面的链接地址 http://www.douban.com/group/topic/30008503/ python文档资料收集 pyth ...
- protobuf学习(2)-相关学习资料
protobuf官方git地址 protobuf官方英文文档 (你懂的需要FQ) protobuf中文翻译文档 protobuf概述 (官方翻译 推荐阅读) protobuf入门 ...
- netty学习资料
netty学习资料推荐官方文档和<netty权威指南>和<netty in action>这两本书.下面收集下网上分享的资料 netty官方参考文档 Netty 4.x Use ...
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
随机推荐
- Python之配置文件读写
ConfigParser模块 一.创建配置文件 在D盘建立一个配置文件,名字为:test.ini 内容如下: [baseconf] host=127.0.0.1 port=3306 user=root ...
- CentOS7.3 jdk、tomcat 安装步骤
jdk.tomcat 安装步骤 一.jdk 安装步骤 1.登录root用户 su - root 2.创建install目录 mkdir -p /usr/install 3.复制 对应的jdk 和tom ...
- 为什么使用Sails?
http://sailsdoc.swift.ren/ 这里有 sails中文文档 http://www.jianshu.com/p/ac2da4142259 前言 入手Node.js半年,从用Expr ...
- Loadrunner中参数化取值方式分析
Loadrunner中参数化取值依赖两个维度: 1.取值顺序分为“顺序”“随机”“唯一”. select next row:Sequential , Random,unique 2.更新值时分为 ...
- UVA10100:Longest Match(最长公共子序列)&&HDU1458Common Subsequence ( LCS)
题目链接:http://blog.csdn.net/u014361775/article/details/42873875 题目解析: 给定两行字符串序列,输出它们之间最大公共子单词的个数 对于给的两 ...
- 模块讲解----sys
sys:跟python解释器相关的信息 #命令行参数list,第一个元素时程序本身路径 print(sys.argv) 注意:执行脚本时,可以传参数. #退出程序,正常退出时exit(0) sys.e ...
- ADO是什么?
ADO是一个组件,ADO不适于MFC但是可以在MFC里面使用.(ADO在1996年冬被发布.) 由于ADO在MFC使用的比较频繁,所以一些前辈将ADO的三个智能指针封装了. 之后就可以在MFC 更方便 ...
- centos7命令1
ls 查看当前路径下的文件或文件夹 pwd 查看当前路径,例如/home/python 表示根目录下的home文件夹下的python文件夹 clear清空屏幕 /斜杠 \反斜杠 |竖杠 _下划线 ...
- for…else和while…else
当while语句配备else子句时,如果while子句内嵌的循环体在整个循环过程中没有执行break语句(循环体中没有break语句,或者循环体中有break语句但是始终未执行),那么循环过程结束后, ...
- 哪个地图API 好用
之前我们能用的地图软件还寥寥无几,而且一个地图包动辄就上百M,还不支持GPS,没有实时路况,没有卫星图,一年也未必更新一次.现如今的地图功能已经极大丰富了,开发者的项目选择性也很大,地图哪个受众比较多 ...