【发布时间】:2013-10-30 09:46:12
【问题描述】:
我编写了一个算法来实现用于压缩文本文件的霍夫曼编码。它基本上接受一个字符串作为输入并生成一个位串作为输出。但是,我在存储这个二进制数据时遇到了麻烦,因为它被存储为一个字符串,其中每个位都是一个字符,并且消耗 2 个字节的内存进行存储。最终结果,输出文件大于输入,使整个程序一文不值。我应该如何存储这个二进制输出,以便每个位只占用一位内存来存储? 附言。我曾尝试使用 BitSet,但这并没有改变输出的大小
【问题讨论】:
-
将数据存储在字节数组中。
-
正如上面的评论所建议的,使用一个字节[],你可以用 FileOutputStream 写入一个文件
-
试过了,没用。我猜是因为每个位都存储为一个字节,但我可能错了。目标是使输出远小于输入
-
问题在于中间步骤,根本不要将它们存储在字符串中。只需将它们转储到 byte[](或 BitSet)
标签: java huffman-code storing-data