1. 程式人生 > >atitit.壓縮算法 ZLib ,gzip ,zip 最佳實踐 java .net php

atitit.壓縮算法 ZLib ,gzip ,zip 最佳實踐 java .net php

mon 處理 匿跡 分享 打包成 ont 壓縮文件 comm b-

atitit.壓縮算法 ZLib ,gzip ,zip 最佳實踐 java .net php

1. 壓縮算法的歸類::: 純算法,歸檔算法 1

2. zlib(適合字符串壓縮) 1

3. gzip( 適合單個的文件) 1

4. zip 2

5. java jdk zlib,gzip,zip的支持 2

6. zlib---gzip 壓縮在後長度比較 2

7. 別的bzip,,tar 2

8. 參考 3

1. 壓縮算法的歸類::: 純算法,歸檔算法

ZIP、RAR等歸檔算法

ZLib能夠簡單的理解為壓縮/解壓縮算法,它與ZIP、RAR等歸檔算法有所不同,

2. zlib(適合字符串壓縮
)

zlib是一個通用的壓縮開源庫。提供了在內存中壓縮和解壓的函數,包含對解壓後數據的校驗。眼下版本號的zlib僅僅支持deflate方法, 它的設計目標是處理單純的數據(而無論數據的來源是什麽)

作者::老哇的爪子Attilax艾龍,EMAIL:[email protected]

轉載請註明來源: http://blog.csdn.net/attilax

3. gzip( 適合單個的文件)

gzip也是一種數據壓縮格式,能夠大體分為頭部,數據部和尾部三個部分,當中頭部和尾部主要是一些文檔屬性和校驗信息(rfc1952)。數據部主要是用deflate方法壓縮得到的數據。

gzip是一種文件壓縮工具(或該壓縮工具產生的壓縮文件格式),它的設計目標是處理單個的文件。gzip在壓縮文件裏的數據時使用的就是zlib。為了 保存與文件屬性有關的信息。gzip須要在壓縮文件(*.gz)中保存很多其它的頭信息內容。而zlib不用考慮這一點。但gzip僅僅適用於單個文件,所以我 們在UNIX/Linux上常常看到的壓縮包後綴都是*.tar.gz或*.tgz。也就是先用tar把多個文件打包成單個文件。再用gzip壓縮的結 果。

4. zip

zip是適用於壓縮多個文件的格式(對應的工具有PkZip和WinZip等),因此,zip文件還要進一步包括文件文件夾結構的信息,比gzip的頭信息 很多其它。但須要註意,zip格式可採用多種壓縮算法,我們常見的zip文件大多不是用zlib的算法壓縮的。其壓縮數據的格式與gzip大不一樣。

5. java jdk zlib,gzip,zip的支持

Java SDK提供了對上述三種壓縮技術的支持:Inflater類和Deflater類直接用zlib庫對數據壓縮/解壓縮,GZIPInputStream類 和GZIPOutputStream類提供了對gzip格式的支持,ZipFile、ZipInputStream、ZipOutputStream則用 於處理zip格式的文件

6. zlib---gzip 壓縮在後長度比較

gzip>>>zlib

244>>>214

7. 別的bzip,,tar

GZIP是JDK自帶的算法實現,但BZip2則不曾享受這個待遇。

只是。強大的Apache堅決不會讓這些個在Linux下如魚得水的算法在Java世界中銷聲匿跡。

Apache在Commons Compress中提供了對應的實現。

同一時候,還包含眾所周知的tar、cpio、zip等算法實現。當中最為豐富的當屬zip

在linux下,tar是一個歸檔命令。當然,假設配合gzip、bzip2就能夠達到歸檔+壓縮的效果!
我們通過tar獲得歸檔壓縮文件事實上恰恰包括了歸檔和壓縮兩個操作。而且其操作次序也是先做歸檔操作。再做壓縮操作! 通常我們忽略了歸檔的概念。將歸檔壓縮文件簡稱為壓縮文件。~

Java壓縮技術(七) TAR——Commons實現

8. 參考

Java壓縮技術(七) TAR——Commons實現 - Snowolf的意境空間! - ITeye技術站點.htm

有關壓縮的一些東西 - wyingquan的專欄 - 博客頻道 - CSDN.NET.htm

技術分享

atitit.壓縮算法 ZLib ,gzip ,zip 最佳實踐 java .net php