Как я могу сохранить биты, закодированные Хаффманом, в по-настоящему сжатый двоичный файл на Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу сохранить биты, закодированные Хаффманом, в по-настоящему сжатый двоичный файл на Java?

Сообщение Anonymous »

Я создаю компрессор Хаффмана на Java.

У меня уже есть: исходный текст, кодовая таблица Хаффмана () и порядок появления символов.
Моя текущая цель — записать сжатый результат в файл .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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»