5

我编写了一个算法来实现用于压缩文本文件的霍夫曼编码。它基本上接受一个字符串作为输入并生成一个位串作为输出。但是,我在存储这个二进制数据时遇到了麻烦,因为它被存储为一个字符串,其中每个位都是一个字符,并且消耗 2 个字节的内存进行存储。最终结果,输出文件大于输入,使整个程序一文不值。我应该如何存储这个二进制输出,以便每个位只占用一位内存来存储?附言。我尝试过使用 BitSet 但这根本没有改变输出的大小

4

1 回答 1

1

一旦你有你的结果BitSet,你可以打电话

BitSet.toByteArray()将您的数据保存到文件中,即:

FileUtils.writeByteArrayToFile(new File(...), bitSet.toByteArray());

BitSet.valueOf(byte[])从文件中读取您的数据:

BitSet bitSet = new BitSet(FileUtils.readFileToByteArray(new File(...)));
于 2013-10-21T21:08:09.067 回答