我正在研究一個Huffman java應用程序,我即將完成。但我有一個問題。我需要將一個類似於「101011101010」的字符串保存到文件中。當我用當前的代碼保存它時,它會將其保存爲每0或1佔用1個字節的字符。我很確定可以將每個0/1保存一次。字符串0和文件的位1作爲位
我已經嘗試了一些BitSet和Integer.valueOf的東西,但我無法讓它們工作。這是我當前的代碼:
FileOutputStream fos = new FileOutputStream("encoded.bin");
fos.write(encoded.getBytes());
fos.close();
其中'編碼'是一個字符串,可以像:「0101011101」。 如果我嘗試將其保存爲整數,則前導0將被刪除。
在此先感謝!
編輯:霍夫曼是一種壓縮方法,所以輸出的文件應該儘可能小。
你爲什麼要把字符串轉換爲整數?當沒有前導0的字符串可以保存時,是不是可以用前導0保存字符串?你的問題到底是什麼? – Pat
這是一種壓縮方法。所以一個'a'或'b'被轉換爲0110(4位而不是1個字節)。問題是我將1和0保存爲1個字節,所以沒有壓縮(現在更糟糕了)。 –