標籤:
原文:java壓縮解壓縮類執行個體[轉]
package com.example.helloworld;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.Deflater;import java.util.zip.Inflater;/** * ZLib壓縮公用程式 * * @author 梁棟 * @version 1.0 * @since 1.0 */public abstract class Utils { /** * 壓縮 * * @param data 待壓縮資料 * @return byte[] 壓縮後的資料 */ public static byte[] compress(byte[] data) { byte[] output = new byte[0]; Deflater compresser = new Deflater(); compresser.reset(); compresser.setInput(data); compresser.finish(); ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length); try { byte[] buf = new byte[1024]; while (!compresser.finished()) { int i = compresser.deflate(buf); bos.write(buf, 0, i); } output = bos.toByteArray(); } catch (Exception e) { output = data; e.printStackTrace(); } finally { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } compresser.end(); return output; } /** * 解壓縮 * * @param data 待壓縮的資料 * @return byte[] 解壓縮後的資料 */ public static byte[] decompress(byte[] data) { byte[] output = new byte[0]; Inflater decompresser = new Inflater(); decompresser.reset(); decompresser.setInput(data); ByteArrayOutputStream o = new ByteArrayOutputStream(data.length); try { byte[] buf = new byte[1024]; while (!decompresser.finished()) { int i = decompresser.inflate(buf); o.write(buf, 0, i); } output = o.toByteArray(); } catch (Exception e) { output = data; e.printStackTrace(); } finally { try { o.close(); } catch (IOException e) { e.printStackTrace(); } } decompresser.end(); return output; } public static void main(String[] args) { String inputStr = "[email protected];[email protected];[email protected]"; System.err.println("輸入字串:\t" + inputStr); byte[] input = inputStr.getBytes(); System.err.println("輸入位元組長度:\t" + input.length); byte[] data = Utils.compress(input); System.err.println("壓縮後位元組長度:\t" + data.length); byte[] output = Utils.decompress(data); System.err.println("解壓縮後位元組長度:\t" + output.length); String outputStr = new String(output); System.err.println("輸出字串:\t" + outputStr); }}
java.util.zip.Deflater 壓縮 inflater解壓 執行個體