Java - Как сжать с использованием дефлатера с динамической c размер байта - PullRequest
0 голосов
/ 27 февраля 2020

Как сжать массив байтов, используя дефлятор? Я попытался с примером сдувать инфляцию со страницы Oracle. Это работало нормально.

Я сомневаюсь, как сделать байт [] размером динамического c.? А как рассчитать до и после сжатия байта []?

1 Ответ

0 голосов
/ 27 февраля 2020

API немного сбивает с толку. Взгляните на закончено () , которое сообщает вам после попытки сжать в слишком маленький буфер, что он был слишком маленьким.

Ваш единственный шанс go on означает либо

  • , постепенно увеличивая буфер, если finished()==false и / или
  • , начиная с достаточно большого буфера (который также может быть слишком мал).

Одной из альтернатив может быть DeflaterOutputStream запись в ByteArrayOutputStream , но это гораздо более высокий уровень, чем тот подход, о котором вы просили.

...