java 压缩类使用 Deflater 和 Inflater

来源:互联网 发布:手机耳机推荐 知乎 编辑:程序博客网 时间:2024/05/22 13:48
package com.zip.test;import java.text.DecimalFormat;import java.text.NumberFormat;import java.util.zip.Deflater;import java.util.zip.Inflater;public class ZIPTest { public static String percnet(double d,double e){          double p = d/e;          DecimalFormat nf = (DecimalFormat) NumberFormat.getPercentInstance();          nf.applyPattern("00%"); //00表示小数点2位          nf.setMaximumFractionDigits(2); //2表示精确到小数点后2位          return nf.format(p);      }  public static void main(String[] args) {String inputStr="hello world.fdsaadfsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";try {byte[] outputStr = inputStr.getBytes("UTF-8");byte[] output =new byte[100];Deflater compress = new Deflater();compress.setInput(outputStr);compress.finish();int compressDataLength = compress.deflate(output);System.out.println(compressDataLength);//decompressInflater decompress = new Inflater();byte[] input = new byte[100];decompress.setInput(output, 0, compressDataLength);int resultLength = decompress.inflate(input);System.out.println(resultLength);decompress.end();if (resultLength < compressDataLength) {System.out.println("负压缩比");}else {System.out.println(percnet( (double)compressDataLength , (double)resultLength));}System.out.println(new String(input, 0, resultLength,"UTF-8")  );} catch (Exception e) {e.printStackTrace();} }}

0 0
原创粉丝点击