如何使用java保存位文件?

时间:2016-04-22 23:58:07

标签: java file file-io bit huffman-code

现在我正在开发一个使用霍夫曼编码进行文本压缩的项目。我能够读取一个文件(包含ASCII文本)并创建一个霍夫曼编码的消息。例如,如果我的文件"input.txt"包含以下文本: Missippi river,那么我编码的代码字会是这样的 1110100110111001001010000110101111001110有40位,而我的"input.txt"是14字节(14 * 8 = 112位)。所以我将112位减少到40位,但是如何将代码字(包含O' s和1' s)输出到只有40位长的文件?我尝试将此字符串放入.txt.文件中,但.txt.文件最终比我的"input.txt"更长,从而使我的整个项目毫无价值。我正在尝试创建编码器/解码器模型。我已经成功创建了编码器部分,并且我也可以创建霍夫曼代码字,但是如何输出它以便我的解码器可以读取它并解压缩。

由于

1 个答案:

答案 0 :(得分:2)

而不是0和1的字符串,您可以使用java BitSet将1/0&s存储为布尔位,然后在编写时,您使用toByteArray将字节直接写为二进制文件,而不是写一串文本。