【问题标题】:Java saving huffman encoded text to fileJava将霍夫曼编码的文本保存到文件
【发布时间】:2018-04-14 14:25:21
【问题描述】:

我正在用 java 开发一个霍夫曼压缩和解压缩应用程序。到目前为止,我已经完成了编码和解码工作。它将大输入文本转换为编码的二进制文本。这是一个 1 和 0 的字符串。例如:

String originaltext = "您好,我正在尝试编写一个霍夫曼应用程序并且..."

String encodedtext = "1100001110001111011010100110100110...." 这是一个很长的字符串。

现在我想将字符串作为二进制文件保存到文件中以减小大小。但是当我尝试这样做时,大小会比原始文本大小大得多。相反,我需要小于原始文件大小的大小。将编码文本保存到文件后,我需要重新读取二进制文件并将其转换为编码文本字符串,以使用我的 huffmantree 方法对其进行反转换。

如何将二进制字符串保存到比原始大小更小的二进制文件中?以及如何读入文件并将二进制代码转换为编码字符串文本?

【问题讨论】:

  • "但是当我尝试这样做时,大小会比原始文本大小大得多。" - 您是在编写表示的二进制文件还是实际的String
  • 我猜是实际的字符串,如何将其转换为二进制字符串?

标签: java huffman-code


【解决方案1】:

可能您正在将 1 和 0 的字符串写为字符串,这将导致每 1 或 0 有 1 个字节。

您需要将这些 1 和 0 转换为字节(即将八个 1 或 0 的组转换为 1 个字节并写入这些字节。

编辑

有关将 1 和 0 转换为字节的代码,请参阅 6502this question 的回答。

【讨论】:

  • 如何将 1 和 0 转换为字节?
  • 查看上面可能的重复链接。在那里你可以找到一个简单的算法。
猜你喜欢
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
  • 2017-02-28
相关资源
最近更新 更多