導航:首頁 > 文件處理 > 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壓縮字元串相關的資料

熱點內容
沒有伺服器怎麼發現其他節點 瀏覽:335
文明傳奇怎麼開伺服器 瀏覽:56
javalistint 瀏覽:675
程序員到公司當領導 瀏覽:225
用演算法控制玩家的行為 瀏覽:482
androidsdk17下載 瀏覽:792
怎麼給單獨表格添加密碼 瀏覽:12
下載壓縮密碼 瀏覽:259
android系統上編程 瀏覽:470
單片機模擬i2c從機 瀏覽:238
教育年報系統伺服器如何開啟 瀏覽:842
對稱密鑰加密後的長度 瀏覽:294
微製造編程軟體下載 瀏覽:107
旋住宿酒店用哪個App最好 瀏覽:60
三菱編程中怎麼創建子程序 瀏覽:201
在單片機溫度輸入採集信號有 瀏覽:686
電腦雲伺服器同步 瀏覽:420
方舟生存進化手游版怎麼轉伺服器 瀏覽:91
哪個app可以聽小說 瀏覽:162
網路發送數據如何加密 瀏覽:203