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_资料的更多相关文章

  1. Vim新手入门资料和一些Vim实用小技巧

    一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为阿里巴巴高级技术专 ...

  2. Git入门资料汇总

    Git是一个非常好用的版本控制工具,同时,它也是一个相对比较复杂的工具,想要掌握它还是需要花一番功夫的.网络上关于Git的入门资料已经很多了,我就不再重复了,直接把我学习的文章放在这里. Git详解 ...

  3. MVC5 网站开发之七 用户功能 3用户资料的修改和删除

    这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了.主要用到两个action "Modify"和& ...

  4. webapi的学习资料

    猿教程_-webapi教程-WebAPI教程 猿教程_-webapi教程-Web API概述 猿教程_-webapi教程-新建Web Api项目 猿教程_-webapi教程-测试Web API 猿教程 ...

  5. 人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]

    说明:这个贴用于收集笔者能力范围内收集收藏并认为有用的资料,方便各方参考,免去到处找寻之苦,提升信息的交叉引用价值.仅供参考,不作为必然的推荐倾向.如涉及版权等问题请相关人员联系笔者,谢谢. |博客| ...

  6. python教程与资料

    网上有个人写的python快速教程,非常好.比看书好多了.猛击下面的链接地址 http://www.douban.com/group/topic/30008503/ python文档资料收集 pyth ...

  7. protobuf学习(2)-相关学习资料

    protobuf官方git地址 protobuf官方英文文档   (你懂的需要FQ) protobuf中文翻译文档 protobuf概述          (官方翻译 推荐阅读) protobuf入门 ...

  8. netty学习资料

    netty学习资料推荐官方文档和<netty权威指南>和<netty in action>这两本书.下面收集下网上分享的资料 netty官方参考文档 Netty 4.x Use ...

  9. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

随机推荐

  1. Android ListView工作原理完全解析(转自 郭霖老师博客)

    原文地址:http://blog.csdn.net/guolin_blog/article/details/44996879 在Android所有常用的原生控件当中,用法最复杂的应该就是ListVie ...

  2. 两台Linux系统之间传输文件

    用CRT分别连上两台需要传输文件的linux系统服务器,并检查防火墙是否关闭. 查看防火墙状态: /etc/init.d/iptables status 若防火墙启用,暂时关闭防火墙: /etc/in ...

  3. HDU3074: Multiply game(线段树单点更新,区间查询)

    题目: 传送门 题解:线段树模板题目. 对递归的题目始终理解不好,我的痛啊,在水的题目都要写很长时间. #include <iostream> #include <string.h& ...

  4. sublime2常用设置

    设置文本字体格式 • Preferences -> Setting-User • 加入设置:"font_face" : "courier new", &q ...

  5. Creating an generated Earth AVI with C++

    Creating an generated Earth AVI with C++        EarthGenerator.cpp /*    EarthGenerator.cpp An examp ...

  6. centos7使用中文输入法

    centos7自带中文输入法,可能我们在安装时会跳过选择汉语拼音,我们来重新设置一下吧 假如你在命令行界面,输入Ctrl+Alt+F1进入图形界面 点击左上角系统工具   --> 设置 --&g ...

  7. Linux系统——本地yum仓库安装

    一.yum仓库概述 yum是基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐地一次次下载.安装. 二.yum仓库安装的方式 ...

  8. cocostudio 在VS模拟器中加载资源显示混乱问题

    这个是由于cocos2d-x的资源是统一按照文件名管理的,所以游戏全局不能有重名. PS:所有用到的素材名字必须单一.

  9. redis数据持久化内存不足

    原因:写数据到redis里面写不进去,查看redis日志显示: Can't save in background: fork: Cannot allocate memory 在小内存的进程上做一个fo ...

  10. servlet的总结

    tomcat在启动的时候 加载webapp下面的web.xml,加载里面定义的servlet. web.xml文件有两部分:servlet类定义和servlet映射定义每个被载入的servlet类都有 ...