java中的压缩以及解压类

在查看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的那个字节数组大小。

你可能感兴趣的:(java)