在查看zip以及unzip的时候,看到了这两个类(Deflater、Inflater),进行测试一下。
1、针对Deflater.java进行的编码:
输入:需要压缩的字节数组以及压缩等级;
输出:压缩后的字节数组。
final static public byte[] deflater(byte[] in, int level) {
byte[] out = new byte[1000];
Deflater de = new Deflater(level);
de.setInput(in);
de.finish();
int length = de.deflate(out);
byte[] filter = new byte[length];
System.arraycopy(out, 0, filter, 0, length);
return filter;
}
2、针对Inflater.java进行的编码:
输入:需要解压的字节数组;
输出:解压后的字节数组。
final static public byte[] inflater(byte[] in) {
Inflater decompresser = new Inflater();
decompresser.setInput(in, 0, in.length);
byte[] result = new byte[1000];
int length = 0;
byte[] filter = null;
try {
length = decompresser.inflate(result);
filter = new byte[length];
System.arraycopy(result, 0, filter, 0, length);
} catch (DataFormatException e) {
e.printStackTrace();
}
decompresser.end();
return filter;
}
OK,输入字节数组,可以看看压缩后的结果以及看能否正确解压。
注意:现在最大支持原始文件1000字节码的压缩,关键是改变代码中的new的那个字节数组大小。