Я создаю компрессор Хаффмана на Java.
У меня уже есть: исходный текст, кодовая таблица Хаффмана (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
Подробнее здесь: https://stackoverflow.com/questions/797 ... le-in-java
Мобильная версия