所以我一直在实现霍夫曼代码来压缩文本文件,这就是我一直在计算每个字符的重复次数的方式
BufferedInputStream fin = new BufferedInputStream(new FileInputStream(f));
byte[] b = new byte[(int) f.length()];
int[] counter = new int[256];
for(int i = 0; i < b.length; i++) {
char ch = (char) b[i];
counter[ch]++;
}
我想扩展我的霍夫曼代码以压缩其他类型的文件,但是我不确定如何做到这一点?我是否要制作一个数组,以容纳像这样的所有可能的未编码字符
int[] counter=new int[65536];
我不认为将数组做成这么大就足够了,但是我不太确定该怎么做?
答案 0 :(得分:0)
将字符作为编码为UTF-8的字节序列处理。然后只需保持字节频率编码即可。