中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java Transaction API概述(轉)

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

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

簡要綜述數據壓縮
描述java.util.zip包
介紹如何使用這些包壓縮和解壓縮數據
介紹如何壓縮和解壓縮已序列化的對象以節省磁盤空間
介紹如何迅速壓縮和解壓縮數據,以提高客戶/服務器應用程序的性能
  概述數據壓縮
  文件冗余最單一的類型是字符的重復。例如,下列字符串:

  BBBBHHDDXXXXKKKKWWZZZZ

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

  4B2H2D4X4K2W4Z

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

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



Java Transaction API概述(轉)

screen.width-333)this.width=screen.width-333;">
圖表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顯 示了基本的數據壓縮方塊圖。



Java Transaction API概述(轉)

screen.width-333)this.width=screen.width-333;">
圖形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) 標準的一部分進行開發的,該標準不受專利的保護。[@more@]
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武清区| 安泽县| 陇南市| 武穴市| 翁牛特旗| 大兴区| 大名县| 奉贤区| 南岸区| 陇西县| 洛扎县| 阳江市| 会昌县| 通州区| 璧山县| 新乡市| 社会| 恩平市| 崇礼县| 都兰县| 三门县| 柳州市| 北海市| 广州市| 左权县| 泸溪县| 石河子市| 汶川县| 沛县| 江源县| 彭水| 九龙城区| 富裕县| 曲周县| 南陵县| 肥东县| 庆元县| 黔西| 奇台县| 宜城市| 阿图什市|