BinaryStdOut.write不打印二进制输出

时间:2016-04-06 00:33:30

标签: java binary huffman-code

一些是霍夫曼特里的根源。 我试图打印二进制遍历PreOrder中的Trie,但二进制输出没有显示。有人可以提供帮助

Huffman.writeTrie(some);


  protected static void writeTrie(Node x) {

        if (x.isLeaf()) {
            BinaryStdOut.write(true);
            BinaryStdOut.write(x.ch, 8);

            return;
        }
        BinaryStdOut.write(false);

        writeTrie(x.left);
        writeTrie(x.right);

    }

1 个答案:

答案 0 :(得分:0)

只是用谷歌搜索看看BinaryStdOut是什么,并从普林斯顿的算法参考文献中找到了这个:http://algs4.cs.princeton.edu/55compression/BinaryStdOut.java.html

它在评论中说:

  

客户端必须在完成后刷新()输出流   写位。

我的代码中没有看到同花顺,所以可能缺少了?听起来像flush正在调用BufferedOutputStream.flush(),如果它丢失了,它应该为你做。没有看到完整的代码很难回答。