标签:
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 = "snowolf@zlex.org;dongliang@zlex.org;zlex.dongliang@zl"; 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解压 实例
标签:
原文地址:http://www.cnblogs.com/lonelyxmas/p/4647895.html