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常见模块之random模块
import random print(random.random()) #随机产生一个0-1之间的小数 print(random.randint(1,3)) #随机产生一个1-3之间的整数,包括1和 ...
- 网络爬虫值scrapy框架基础
简介 Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. 其可以应用在数据挖掘,信息处理或存储历史 ...
- Android开发:带动画的分享效果
这几天做了个带动画的分享页面.如今把它分享出来,假设你认为实用,请直接使用,避免反复造轮子 先看下效果图 认为仅仅是看效果图不明显.那么用手机扫描以下的二维码下载安装包:
- 批处理delims分割时遇到的问题。。
今天写了个将文件每行按逗号分割并取第六行的批处理.但是结果不对.看图一目了然. for 循环的/f 后面的参数是这样的 然后文件的内容是这样的 亮点是倒数第二行..其实6才是第六列的值.其他行第六列都 ...
- vue react angular对比
1.数据绑定 1)vue 把一个普通对象传给Vued的data选项,Vue会遍历此对象的所有属性,并使用Object.defineProperty将这些属性全部转为getter/setter.Obje ...
- Extjs添加行双击事件
var grid = new Ext.grid.GridPanel({ store: store, trackMouseOver: false, disableSelection: true, aut ...
- 003-spring boot项目的项目属性配置
一.application.properties文件. 1.项目的配置文件内容.配置了端口,超时连接时间, 2.控制器. 3.访问. 二.application.yml文件 1.application ...
- XDU 1037 倍流畅序列(字符串匹配+贪心)
题目描述 对于一个0,1串s, 从左端开始读取它的0获得序列s0,从右端开始读取它的1获得s1,如果s0与s1同构,则称s为倍流畅序列.例如:011001是一个倍流畅序列, 因为:s0 = 0__00 ...
- 利用maven-dependency-plugin插件使用及场景
背景: 1.需要某个特殊的 jar包,但是有不能直接通过maven依赖获取,或者说在其他环境的maven仓库内不存在,那么如何将我们所需要的jar包打入我们的生产jar包中. 2.某个jar包内部包含 ...
- es6函数模块-------初步学习
初步学习: 函数参数允许尾逗号 function clownsEverywhere( param1, param2, //param2后面有逗号 ) { } 函数参数可以赋初值 利用解构赋值默认值结合 ...