我现在正在做霍夫曼编码,我在路上遇到了这个颠簸。除了这一部分,我几乎完成了所有工作。我现在的主要问题是我不确定如何存储使用我的代码编码的 0 和 1 的二进制字符串。我尝试正常写出它,但它的文件大小最终比我编码的原始文本文件大得多。有人可以给我任何关于我应该如何存储我的二进制字符串的想法,这样就不会发生这种情况。
更新我注意到,当我尝试将其转换为 char 并最终打印为 ?s 时,很多 char 都无法识别
String u = scanner.nextLine();
char l;
for(int b = 0;b<u.length();b++)
{
l = u.charAt(b);
int c = (int) u.charAt(b);
String p = Integer.toBinaryString(c);
if(b!= u.length()-1)
{
while(p.length()!=8){
p = "0" + p;
//Thread.sleep(3000);
}
}System.out.println(p);
k.append(p);
它在 ? 并打印出 00111111。有人对我如何解决这个问题有任何建议吗?