atitit.壓縮算法 ZLib ,gzip ,zip 最佳實踐 java .net php
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