我现在正在做霍夫曼编码,我在路上遇到了这个颠簸。除了这一部分,我几乎完成了所有工作。我现在的主要问题是我不确定如何存储使用我的代码编码的 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。有人对我如何解决这个问题有任何建议吗?