自JDK11起,我们有了java.util.zip.Deflater::deflate(ByteBuffer)
here。我们有java.util.zip.GZIPOutputStream
可以产生有效的gzip文件,但是问题是java.io
程序包无法使用ByteBuffer
,因此我们最终会这样做:
OutputStream ous = //...
Channels.newChannel(new GZIPOutputStream(ous));
这显然是没有用的,因为从后台进行从ByteBuffer
到byte[]
的复制。
是否有使用GzipWritableChannel
的{{1}}之类的东西,或者我们必须自己编写类似于java.util.zip.Deflater::deflate(ByteBuffer)
的东西?