繁体   English   中英

有没有办法在Java中gzip字节缓冲区?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM