У меня уже есть: исходный текст, кодовая таблица Хаффмана (
Код: Выделить всё
MapМоя текущая цель — записать сжатый результат в файл .bin.
Однако выходной файл больше исходного текста, поскольку каждый бит '0' или '1' сохраняется как полный байт, а не упаковывается в реальные биты.
Вот моя текущая реализация:
Код: Выделить всё
private static byte[] convertBitsToBytes(String bits) {
int len = bits.length();
int numBytes = (int) Math.ceil(len / 8.0);
byte[] bytes = new byte[numBytes];
for (int i = 0; i < len; i++) {
if (bits.charAt(i) == '1') {
bytes[i / 8] |= (byte) (1
Подробнее здесь: [url]https://stackoverflow.com/questions/79792327/how-can-i-store-huffman-encoded-bits-into-a-truly-compressed-binary-file-in-java[/url]
Мобильная версия