Есть ли способ сжать байтовый буфер в Java? - PullRequest
0 голосов
/ 09 октября 2018

У меня довольно большое DirectByteBuffer, и я хотел бы создать из него gzipped DirectByteBuffer без передачи его содержимого в кучу.

Стандарт java.util.Deflater не может быть полезен, поскольку он работает на byte[], который по определению находится в куче.

Есть ли способ сделать это на Java?Или мне нужно позвонить libzip напрямую через JNI?

1 Ответ

0 голосов
/ 09 октября 2018

Начиная с Java 11, есть

и

, позволяющий задавать вход и выход в виде байтовых буферов.Конечно, это зависит от реализации, позволяет ли это на самом деле выполнять непосредственную обработку без кучи, но быстрый просмотр OpenJDK показал, что у него есть метод native для обработки от буфера к буферу.

Технически, этоне GZip, если только вы не пишете артефакты этого формата файла, но, я полагаю, вас больше интересует сжатие, а не формат файла.

...