欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java通过GZIP压缩和解压缩字符串代码,javagzip,import java.

来源: javaer 分享于  点击 33316 次 点评:161

Java通过GZIP压缩和解压缩字符串代码,javagzip,import java.


import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.GZIPInputStream;import java.util.zip.GZIPOutputStream;/** * GZIP压缩解压类 */public class MessageGZIP {    private static String encode = "utf-8";//"ISO-8859-1"    public String getEncode() {        return encode;    }    /*     * 设置 编码,默认编码:UTF-8     */    public void setEncode(String encode) {        MessageGZIP.encode = encode;    }    /*     * 字符串压缩为字节数组     */    public static byte[] compressToByte(String str){        if (str == null || str.length() == 0) {            return null;        }        ByteArrayOutputStream out = new ByteArrayOutputStream();        GZIPOutputStream gzip;        try {            gzip = new GZIPOutputStream(out);            gzip.write(str.getBytes(encode));            gzip.close();        } catch (IOException e) {            e.printStackTrace();        }        return out.toByteArray();    }    /*     * 字符串压缩为字节数组     */    public static byte[] compressToByte(String str,String encoding){        if (str == null || str.length() == 0) {            return null;        }        ByteArrayOutputStream out = new ByteArrayOutputStream();        GZIPOutputStream gzip;        try {            gzip = new GZIPOutputStream(out);            gzip.write(str.getBytes(encoding));            gzip.close();        } catch (IOException e) {            e.printStackTrace();        }        return out.toByteArray();    }    /*     * 字节数组解压缩后返回字符串     */    public static String uncompressToString(byte[] b) {        if (b == null || b.length == 0) {            return null;        }        ByteArrayOutputStream out = new ByteArrayOutputStream();        ByteArrayInputStream in = new ByteArrayInputStream(b);        try {            GZIPInputStream gunzip = new GZIPInputStream(in);            byte[] buffer = new byte[256];            int n;            while ((n = gunzip.read(buffer)) >= 0) {                out.write(buffer, 0, n);            }        } catch (IOException e) {            e.printStackTrace();        }        return out.toString();    }    /*     * 字节数组解压缩后返回字符串     */    public static String uncompressToString(byte[] b, String encoding) {        if (b == null || b.length == 0) {            return null;        }        ByteArrayOutputStream out = new ByteArrayOutputStream();        ByteArrayInputStream in = new ByteArrayInputStream(b);        try {            GZIPInputStream gunzip = new GZIPInputStream(in);            byte[] buffer = new byte[256];            int n;            while ((n = gunzip.read(buffer)) >= 0) {                out.write(buffer, 0, n);            }            return out.toString(encoding);        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}
相关栏目:

用户点评