Som*_*ame 4 java gzip jvm nio bytebuffer
我有相当大的DirectByteBuffer,我想DirectByteBuffer从它生成一个gzip 而不将其内容传输到堆.
标准java.util.Deflater没有用,因为它按照byte[]定义在堆上运行.
有没有办法在Java中这样做?或者我必须libzip直接打电话JNI?
从Java 11开始,有
和
允许将输入和输出指定为字节缓冲区.当然,它的实现依赖于它是否实际上允许直接的堆外处理,但是快速浏览OpenJDK后发现它有一个native缓冲区到缓冲区处理的方法.
从技术上讲,它不是GZip,除非你也在编写那种文件格式的工件,但我想,你主要是对压缩而不是文件格式感兴趣.