ハフマンアルゴリズムをコード化しました。ハフマンアルゴリズムファイルへの書き込み
ファイルを文字列に読み込んだ後、ハーフマンツリーを構築し、 エンコードデータでコードします。
私はこれを新しいStringに入れて新しいファイルに書きましたが、ファイルを減らす代わりにファイルのサイズを大きくしました!!
私が間違っているか知っている:
それはそれはそれは6*8=68
ビット
ある"000111"
にコード化されたときに、誰もが任意のアイデアを持っています、しかし3*8=24
ビット
あるのように入力文字列がある場合は?
"000111"
文字列を出力ファイルに書き込むと、6ビットしか必要なくなります。
私はJavaを使用しています。
お願いします。
ここでは非常に大きな誤解があります。ハフマン符号化された出力は、生のバイナリストリームであり、用語の通常の意味での「文字列」ではありません。あなたはそれを使ってバイナリI/Oをやっているはずです。 Javaで行うのはそれほど簡単ではありませんが、そこにたくさんのサンプルがあるはずです(http://stackoverflow.com/questions/903375/huffman-compression-algorithmなど)。 – Mat