java 解压缩程序

3/8/2017来源:ASP.NET技巧人气:464

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); }