Zlib壓縮算法在Java與Delphi間交互實現
關鍵字: 一個典型應用中,使用delphi作為客戶端,J2EE服務端,兩者之間用XML作為數據交換,為了提高效率,對XML數據進行壓縮,為此需要找到一種壓縮/解壓算法能夠兩個平臺之間交互處理,使用ZLIB算法就是一個不錯的 解決方案 。 1、JAVA實現 在JDK中,在 ja
關鍵字:
一個典型應用中,使用delphi作為客戶端,J2EE服務端,兩者之間用XML作為數據交換,為了提高效率,對XML數據進行壓縮,為此需要找到一種壓縮/解壓算法能夠兩個平臺之間交互處理,使用ZLIB算法就是一個不錯的解決方案。
1、JAVA實現
在JDK中,在java.util.zip包中已經內置了ZLIB的實現,示例代碼如下:
1//解壓
2 public String decompressData(String encdata) {
3 try {
4 ByteArrayOutputStream bos = new ByteArrayOutputStream();
5 InflaterOutputStream zos = new InflaterOutputStream(bos);
6 zos.write(convertFromBase64(encdata));
7 zos.close();
8 return new String(bos.toByteArray());
9 } catch (Exception ex) {
10 ex.printStackTrace();
11 return "UNZIP_ERR";
12 }
13 }
14
15 //壓縮
16 public String compressData(String data) {
17 try {
18 ByteArrayOutputStream bos = new ByteArrayOutputStream();
19 DeflaterOutputStream zos = new DeflaterOutputStream(bos);
20 zos.write(data.getBytes());
21 zos.close();
22 return new String(convertToBase64(bos.toByteArray()));
23 } catch (Exception ex) {
24 ex.printStackTrace();
25 return "ZIP_ERR";
26 }
27 } |
原文轉自:http://www.anti-gravitydesign.com