Начиная с JDK11 у нас есть java.util.zip.Deflater::deflate(ByteBuffer)
здесь .У нас есть java.util.zip.GZIPOutputStream
, который может создать действительный файл gzip, но проблема в том, что java.io
пакет не может использовать ByteBuffer
с, и мы в конечном итоге сделаем это:
OutputStream ous = //...
Channels.newChannel(new GZIPOutputStream(ous));
, что, очевидно, бесполезнопоскольку копирование из ByteBuffer
в byte[]
происходит под капотом.
Есть ли что-то вроде GzipWritableChannel
, использующее java.util.zip.Deflater::deflate(ByteBuffer)
, или мы должны написать это самим по себе, как GZIPOutputStream
?