我正在使用java中的霍夫曼压缩和解压缩应用程序。到目前为止,我得到了编码和解码工作。它将大输入文本转换为其编码的二进制文本。这是一个1和0的字符串。例如:
String originaltext ="您好我正在尝试编写一个霍夫曼应用程序并且......"
String encodedtext =" 1100001110001111011010100110100110 ...."这是一个非常长的字符串。
现在我想将字符串保存为文件作为二进制文件以减小大小。但是,当我尝试这样做时,大小将比原始文本大小大。相反,我需要的尺寸小于原始文件大小。将encodedtext保存到文件后,我需要重新读取二进制文件并将其转换为encodedText字符串,以使用我的huffmantree方法对其进行反转换。
如何将二进制字符串保存为二进制文件,该文件的大小比原始大小小?如何读取文件并将二进制代码转换为encodedString文本?
答案 0 :(得分:0)
可能你正在将字符串1和0写成字符串,这将导致每1或0个字节。
您需要将1和0转换为字节(即将8个1或0的组转换为1个字节并写入这些字节。
修改强>
请参阅6502
至this question的答案,了解将1和0转换为字节的代码。