java 解压缩程序

来源:互联网 发布:白板品牌排行 知乎 编辑:程序博客网 时间:2024/06/15 16:03
public static void main(String[] args) throws IOException {//        String tmp = "x%DAKLJNIMK%CF%C8%CC%CA%CE%01%00%1E%B8%04%CF";//        String decodeTmp = URLDecoder.decode(tmp,"ISO-8859-1");//        System.out.println(decompress(decodeTmp));        String s = "abksdgl;dfhksda";        String c = compress(s);        System.out.println(decompress(c));    }    public static String decompress(String data) throws UnsupportedEncodingException {        return decompress(data,"ISO-8859-1");    }    public static String decompress(String data, String charset) throws UnsupportedEncodingException {        byte[] bytes = data.getBytes(charset);        byte[] output = new byte[0];        Inflater decompresser = new Inflater();        decompresser.reset();        decompresser.setInput(bytes);        ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);        try {            byte[] buf = new byte[1024];            while (!decompresser.finished()) {                int i = decompresser.inflate(buf);                baos.write(buf, 0, i);            }            output = baos.toByteArray();        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                baos.close();            } catch (IOException e) {                e.printStackTrace();            }        }        decompresser.end();        return new String(output);    }    public static String compress(String data) throws UnsupportedEncodingException {        return compress(data,"ISO-8859-1");    }    public static String compress(String data, String charset) throws UnsupportedEncodingException {        byte[] compress = new byte[0];        byte[] bytes = data.getBytes(charset);        Deflater compresser = new Deflater();        compresser.reset();        compresser.setInput(bytes);        compresser.finish();        ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);        try {            byte[] buf = new byte[1024];            while (!compresser.finished()) {                int i = compresser.deflate(buf);                baos.write(buf, 0, i);            }            compress = baos.toByteArray();        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                baos.close();            } catch (IOException e) {                e.printStackTrace();            }        }        compresser.end();        return new String(compress,charset);    }
0 0
原创粉丝点击