大战熟女丰满人妻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) 標準的一部分進行開發的,該標準不受專利的保護。



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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 黄色α片 | 国语精品视频在线观看不卡 | 最新国产区 | 男人都懂的网站 | 在线观看亚洲网站 | 伊人黄网 | 深夜福利在线看 | 九九热精品国产 | 98色花堂永久地址国产精品 | 五月天激情亚洲婷婷在线 | 免费看欧美一级特黄a大片一 | 亚洲在线成人 | 国产精品福利在线观看 | 亚洲国产系列久久精品99人人 | 午夜黄色毛片 | 欧美三级做爰在线 | 色综合天天综合网看在线影院 | 福利视频在线播放 | 一二三四社区在线播放 | 99r视频| 欧美 亚洲 另类 热图 | 日日噜噜夜夜狠狠tv视频免费 | 久久综合狠狠综合久久 | 亚洲国产精久久久久久久春色 | 日日摸夜夜 | 日韩免费一区二区 | 青草青青在线视频观看 | 亚洲国产精品毛片∧v卡在线 | 国产伦精品一区二区三区四区 | 国产成人精品永久免费视频 | 欧美性视频在线 | 国产福利在线观看 | 九九在线 | 成人日韩在线 | 亚洲第一二三四区 | 欧美日韩a级片 | 免费看一级特黄a大片 | 99色婷婷| 老司机毛片 | 亚洲 欧美 中文字幕 | 4hu最新网址 |