【发布时间】:2016-04-22 23:58:06
【问题描述】:
现在我正在开发一个使用 Huffman 编码进行文本压缩的项目。我能够读取一个文件(包含 ASCII 文本)并创建一个霍夫曼编码的消息。例如,如果我的文件 "input.txt" 包含以下文本:
Missippi river,那么我的编码码字会是这样的
1110100110111001001010000110101111001110 有 40 位,而我的 "input.txt" 是 14 字节(14*8 = 112 位)。所以我将 112 位减少到 40 位,但是如何将我的代码字(包含 O 和 1)输出到只有 40 位长的文件?我尝试将此字符串放入.txt. 文件中,但该.txt. 文件最终比我的"input.txt" 更长,从而使我的整个项目一文不值。我正在尝试创建一个编码器/解码器模型。我已经成功创建了编码器部分,我也可以创建霍夫曼码字,但是我如何输出它以便我的解码器可以读取它并解压缩。
谢谢
【问题讨论】:
-
为什么要将位存储为字符串?
-
我是从树上得到的,所以使用字符串似乎很容易。后来我使用 BitSet 将其转换为 int。
标签: java file file-io bit huffman-code