像ppt 和视频文件,自身已经压缩过了。所以压缩率很低。
还有就是压缩是二进制的压缩。所以,一切类型的东西都可以压缩。字节的处理。
如果压缩的文件的重复率不高,那么压缩率很低。
整体流程
第一:变成map ,为了统计
第二: 将统计的数据放在对象中。变成list ,为了排序
第三:创建哈夫曼树。
第四:通过树变成编码。对应关系用map存
第五:通过编码。生成一个 二进制的String
第六:通过String 每8位 编码成一个byte,有对应的十进制生成了。压缩了
解压:
第一:通过byte [] Integer的toBinaryString方法,以及二进制操作。得到 二进制String
第二:通过。遍历每一个 字符。在编码表的你编码 map的转换。再进行解码。
如果是文件。或者是图片什么的,我们只需要加上流操作就可以了。压缩不变。