大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java API壓縮和解壓縮數據

Java API壓縮和解壓縮數據

更新時間:2019-08-13 16:26:44 來源:動力節點 瀏覽4187次

 

許多資料來源中都含有多余數據或對存儲信息無用的數據。這常常造成客戶機和服務器應用程序間或電腦間浩如煙海的數據傳輸。很明顯,數據存儲和信息 輸問題解決辦法是,安裝輔助存儲裝置并擴展現有的通信設備。然而,要做到這 一點,就需要增加組織的運行費用。減輕部分數據存儲和信息傳輸的方法之一是, 以更有效的代碼表示數據。本文簡要介紹數據壓縮和解壓縮,以及如何有效地、方便地從JavaTM應用程序內部使用 java.util.zip包壓縮和解壓縮數據。


雖然 WinZip、gzip和Java ARchive(或 jar)等工具可以用來壓縮和解壓縮數據,這些工具仍被用作獨立 的應用程序。從 Java 應用程序中可以調用這些工具,但并非是簡捷有效的解決 方法。在希望迅速地(如在傳輸到遠程機器之前)壓縮和解壓縮數據的情況下, 尤其如此。本文將:


  簡要綜述數據壓縮


  描述java.util.zip包


  介紹如何使用這些包壓縮和解壓縮數據


  介紹如何壓縮和解壓縮已序列化的對象以節省磁盤空間


  介紹如何迅速壓縮和解壓縮數據,以提高客戶/服務器應用程序的性能


  概述數據壓縮


  文件冗余最單一的類型是字符的重復。例如,下列字符串:


  BBBBHHDDXXXXKKKKWWZZZZ


  可以更簡潔地對本字符串進行編碼,方法是以重復字符和代表其重復次數的數 字代替每個重復字符串。因此,上述字符串可以編碼為:


  4B2H2D4X4K2W4Z


  這里的" 4B "表示4個B,而2H表示2個H,等等。以這種方法壓縮字符串的編碼 方式叫做運行長度編碼。


  另一個例子,是矩形圖像存儲。因為是單色位圖圖像,所以按圖表1所示存儲。


  圖表1∶帶運行長度編碼信息的位圖


  第二種方法是將圖像存為圖解元文件∶


  矩形11、3、20、5


  它表示,該矩形起始坐標是(11, 3),寬度是 20 像素,長度是 5 像素。


  矩形圖像可以通過計算相等字節的方式,以運行長度編碼進行壓縮,如下:


  0, 40


  0, 40


  0,10 1,20 0,10


  0,10 1,1 0,18 1,1 0,10


  0,10 1,1 0,18 1,1 0,10


  0,10 1,1 0,18 1,1 0,10


  0,10 1,20 0,10


  0,40


  上面的第一行表示,位圖的第一行由40個0組成。第三行表示,位圖的第三行 由10個0組成,繼之以20個1、10個0組成,諸如此類。


  注意,運行長度編碼要求對其文件及其編碼版本分別表示。所以,本方法不 適用于所有文件。其他的壓縮技術包括變長編碼(亦稱霍夫曼編碼)和等其它編 碼。更多信息,請參看數據和影象壓縮技術的相關書籍。


  數據壓縮的好處很多。不過,基本的好處是減少存儲需求。此外,對于數據 通信,通過介質傳遞壓縮數據會導致信息傳輸率的增加。注意,數據壓縮可以 在現有的硬件上通過軟件或采用結合了壓縮技術的專門硬件設備完成。圖形2顯 示了基本的數據壓縮方塊圖。


  圖形2∶數據壓縮方塊圖


  ZIP vs. GZIP


  如果使用的是 Windows,就會很熟悉 WinZip 工具,該工具用來創建壓縮文 件和從壓縮文件中提取文件。不過,在UNIX上,細節有些有點不一樣。tar 命令 用來創建文件(非壓縮),而另一個程序(gzip或壓縮)用來壓縮 文件。


  WinZip和PKZIP之類的工具既用作歸檔器,教育期刊也用 作壓縮器。它們將文件壓縮并存儲在文檔中。另一方面,gzip并不 存檔文件。因此,在 UNIX 上,tar命令通常用來創建文檔,然后 用gzip命令來壓縮存檔文件。


  java.util.zip 包


  Java 為兼容 zip 的數據壓縮提供 java.util.zip包。它提供 允許讀取、創建并修改ZIP和GZIP文件格式的類。此外,提供用于計算任意輸入流 校驗和的應用類,該類可用于確認輸入數據。這個包有一個界面、14個類和2個異 常類,如表1所示。


  表 1∶java.util.zip 包


  項目 類型 描述


  Checksum 界面 由Adler32和CRC32類實現


  Adler32 類 用于計算數據流的 Adler32 檢驗和


  CheckedInputStream 類 維持正在讀取的數據檢驗和的輸入流。


  CheckedOutputStream 類 維持寫入數據的檢驗和的輸出流。


  CRC32 類 用于計算數據流的 CRC32 檢驗和


  Deflater 類 支持使用 ZLIB 壓縮庫的常規壓縮


  DeflaterOutputStream 類 以緊縮壓縮格式壓縮數據的輸出流過濾器


  GZIPInputStream 類 文件格式壓縮數據的輸入流過濾器。


  GZIPOutputStream 類 文件格式壓縮數據的輸出流過濾器。


  Inflater 類 支持使用 ZLIB 壓縮庫的常規解壓縮


  InlfaterInputStream 類 解壓緊縮壓縮格式數據的輸入流過濾器


  ZipEntry 類 代表ZIP壓縮文件條目


  ZipFile 類 用于從ZIP文件中讀取條目


  ZipInputStream 類 讀取ZIP文件格式文件的輸入流過濾器


  ZipOutputStream 類 以ZIP文件格式寫入文件的輸出流過濾器


  DataFormatException 異常類 給出數據格式錯誤的信號


  ZipException 異常類 給出 zip 錯誤的信號


  注意: TZLIB壓縮庫最初是作為“可移植的網絡圖象文件格式”(PNG) 標準的一部分進行開發的,該標準不受專利的保護。



提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 99在线播放视频 | 色中文字幕 | 国产91精品系列在线观看 | 手机看福利片 | 亚洲精品日本一区二区在线 | 国产成人综合网 | 国产成人久视频免费 | 波多野结衣免费播放 | 亚洲精品国产经典一区二区 | 福利毛片 | 久久r视频| 亚洲线精品一区二区三区 | 午夜宅男免费完整在线观看 | 国产亚洲欧美久久久久 | 九九伦理影院手机观看 | 久久久精品一区 | 天天操天天爽天天射 | 波多野结衣中文丝袜字幕 | 免费视频成人国产精品网站 | 色偷偷88888欧美精品久久久 | 中文字幕亚洲综合久久男男 | 2021国产精品自产拍在线观看 | 国产成人理在线观看视频 | 亚洲欧美精品一中文字幕 | 欧美性狂猛bbbbbbxxxx | 五月久久亚洲七七综合中文网 | 亚洲欧美中文日韩在线 | 99久久免费国产香蕉麻豆 | 破外女出血一级毛片 | 天天天天 | 伊色综合久久之综合久久 | 国产精品国产国产aⅴ | 日本综合欧美一区二区三区 | 久久久久久久亚洲精品 | 国产手机精品一区二区 | 国产毛片久久久久久国产毛片 | 久久99精品久久久久久臀蜜桃 | 中文字幕日韩一区二区不卡 | 亚洲精品一区二区手机在线 | 一级做a爱片特黄在线观看免费看 | 最近中文字幕无吗免费视频 |