[英]Is there a way to gzip a byte buffer in Java?
我有非常庞大的DirectByteBuffer
,我想从中生成一个gzip压缩的DirectByteBuffer
而不将其内容传输到堆中。
标准的java.util.Deflater
是没有用的,因为它在byte[]
上运行,根据定义在堆上运行。
有没有办法在Java中这样做? 或者我必须通过JNI
直接调用libzip
?
从Java 11开始,有
和
允许将输入和输出指定为字节缓冲区。 当然,它的实现依赖于它是否实际上允许直接的堆外处理,但是快速浏览OpenJDK后发现它具有缓冲区到缓冲区处理的native
方法。
从技术上讲,它不是GZip,除非你也在编写那种文件格式的工件,但我想,你主要是对压缩而不是文件格式感兴趣。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.