用zlib压缩后的流存成文件,如何用java 解压缩还原?(100分)

  • 主题发起人 主题发起人 sdmb
  • 开始时间 开始时间
S

sdmb

Unregistered / Unconfirmed
GUEST, unregistred user!
压缩方法

users zlib;
procedure CompressIt(var CompressedStream: TMemoryStream;
const CompressionLevel: TCompressionLevel);
var SourceStream: TCompressionStream;
DestStream: TMemoryStream;
Count: int64;
//注意,此处修改了,原来是int
begin
Count := CompressedStream.Size;
//获得流的原始尺寸
DestStream := TMemoryStream.Create;
SourceStream := TCompressionStream.Create(CompressionLevel, DestStream);
try
CompressedStream.SaveToStream(SourceStream);
//SourceStream中保存着原始的流
SourceStream.Free;
//将原始流进行压缩,DestStream中保存着压缩后的流
CompressedStream.Clear;
CompressedStream.WriteBuffer(Count, SizeOf(Count));
//写入原始图像的尺寸
CompressedStream.CopyFrom(DestStream, 0);
//写入经过压缩的流
finally
DestStream.Free;
end;
end;

如何用java进行解压缩?
 
好像生成的文件和java 生成的格式有点区别。
 
zlib默认用的是zlib自己的压缩格式,连ZIP格式都不是。
 
今天没事儿查了一下,发现jzlib包可以解决zlib压缩问题。
http://www.jcraft.com/jzlib/jzlib-1.0.7.zip 下载。
 
接受答案了.
 
后退
顶部