導航:首頁 > 文件處理 > zlib壓縮字元串

zlib壓縮字元串

發布時間:2022-01-14 03:25:26

❶ zip、bzip、lzma和ZLib如果極限壓縮的話,那種壓縮率最高除這幾種之外,還有沒有壓縮率更高的壓縮方式

LZMA和ZLIB壓縮測試:
輸出結果:
zlib壓縮:255ms size:5.08MB
zlib解壓:12ms
lzma壓縮:1974ms size:5.11MB
lzma解壓:399ms
LZMA.AS解壓:27381ms
這結果真讓人大失所望,不知道是不是測試的有問題,沒有更小,反而更大了。而且解壓時間長了幾十倍。as版的LZMA解壓時間更是無法接受。還是繼續用zlib吧。

ZLIB最高

❷ C# zlib字元串解壓

MemoryStream ms = new MemoryStream(bytes)

//這樣的話ms有數據的
CopyStream(tempMs, outZStream);
//lz,你將tempMS賦值給了outZStream,不是ms賦值給outZStream啊
//因為MemoryStream tempMs = new MemoryStream();
//tempMs沒有數據,但ms有數據,你將沒有數據的tempMs賦值過去,outZStream當然是空的...

❸ 關於zlib解壓縮的問題~

壓縮與解壓縮的時候,分別有2個不同的版本,分別是safe和普通的版本。2個版本要對應起來。

你在解壓縮的時候,注意緩沖區大小了嗎?緩沖區夠用了嗎?在壓縮前,保存一下這個壓縮前的原始的長度,然後解壓前,分配一塊至少這么大的內存。

你實際調試過嗎?比如,你可以先去掉文件IO的過程,只是對一個字元串進行壓縮/解壓,然後看看是否正確;然後再加上文件IO,看看存取的過程是否正確。壓縮後的文件應該以二進制方式打開對吧。

❹ 是否能用delphi的zlib解壓php gzip壓縮的字元串

可以使用 delphi 與 java 完成數據壓縮還原的交通。
不管是 java還是 delphi,演算法都有現成的控制項,關鍵是要使用同樣的壓縮協議。請參考以下資料:
在Java與Delphi間交互實現Zlib壓縮演算法
http://blog.csdn.net/hexingyeyun/article/details/8678154

❺ 如何用zlib將很多文件或一個文件夾壓縮

問題的根源在於這些網友對於字元串和位元組流的概念非常的模糊,對文本文件和二進制文件的區別常常模稜兩可,其實位元組流可以表示所有的數據,二進制文件才是任何文件的本質。位元組流是一個位元組接一個位元組,並沒有結束符號

❻ java zlib 壓縮和解壓縮怎麼實現

使用java.util.zip.ZipFile 類及相關的類實現

如解壓縮
ZipInputStream zin = new ZipInputStream(in);
ZipEntry entry = null;
while((entry=zin.getNextEntry())!=null){
if(entry.isDirectory()||entry.getName().equals("..\\"))
continue;
BufferedInputStream bin = new BufferedInputStream(zin);
byte[] buf = new byte[];
bin.read(buf,0,1);
}

python中如何對文件進行 zlib壓縮

文件讀取以後也是一個大的字元串,整個一起壓縮就可以了。

示例:

fin=open('in.txt','r')
fout=open('out.txt','w')
str=fin.read()
//compressstr
fout.write(compressed_str)
fout.close()
fin.close()

❽ zlib 怎麼壓縮為deflate格式

先來看看 zlib 都提供了那些函數, 都在zlib.h中,看到一堆宏不要暈,其實都是為了兼容各種編譯器和一些類型定義.死死抓住那些主要的函數的原型聲明就不會受到這些東西的影響了.

關鍵的函數有那麼幾個:

(1)int compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);

把源緩沖壓縮成目的緩沖, 就那麼簡單, 一個函數搞定

(2) int compress2 (Bytef *dest, uLongf *destLen,const Bytef *source, uLong sourceLen,int level);

功能和上一個函數一樣,都一個參數可以指定壓縮質量和壓縮數度之間的關系(0-9)不敢肯定這個參數的話不用太在意它,明白一個道理就好了: 要想得到高的壓縮比就要多花時間

(3) uLong compressBound (uLong sourceLen);

計算需要的緩沖區長度. 假設你在壓縮之前就想知道你的產度為 sourcelen 的數據壓縮後有多大, 可調用這個函數計算一下,這個函數並不能得到精確的結果,但是它可以保證實際輸出長度肯定小於它計算出來的長度

(4) int uncompress (Bytef *dest, uLongf *destLen,const Bytef *source, uLong sourceLen);

解壓縮(看名字就知道了:)

(5) deflateInit() + deflate() + deflateEnd()

3個函數結合使用完成壓縮功能,具體用法看 example.c 的 test_deflate()函數. 其實 compress() 函數內部就是用這3個函數實現的(工程 zlib 的 compress.c 文件)

(6) inflateInit() + inflate() + inflateEnd()

和(5)類似,完成解壓縮功能.

(7) gz開頭的函數. 用來操作*.gz的文件,和文件stdio調用方式類似. 想知道怎麼用的話看example.c 的 test_gzio() 函數,很easy.

(8) 其他諸如獲得版本等函數就不說了.

總結: 其實只要有了compress() 和uncompress() 兩個函數,在大多數應用中就足夠了.

閱讀全文

與zlib壓縮字元串相關的資料

熱點內容
iphone6s照片壓縮 瀏覽:68
中國龍文件夾名字 瀏覽:95
加法是運演算法則 瀏覽:33
linuxvim命令查找 瀏覽:948
linuxhttp埠 瀏覽:907
程序員去國企 瀏覽:632
android自動刷新listview 瀏覽:572
美國壽力壓縮機 瀏覽:546
如何查看公司伺服器的配置 瀏覽:348
得到app的文章怎麼復制 瀏覽:382
程序員創業規模 瀏覽:377
java文件排序演算法 瀏覽:239
民政低保對象app郵箱怎麼填 瀏覽:948
jsp里的java 瀏覽:983
程序員合同到期不續簽賠償嗎 瀏覽:239
uc怎麼把字幕放在文件夾 瀏覽:245
buildingpdf 瀏覽:594
二分查找演算法技巧 瀏覽:196
創造與魔法游戲伺服器怎麼調 瀏覽:837
win10在cmd編譯出來空白 瀏覽:504