¿Hay una manera de gzip una memoria intermedia de bytes en Java?

Algunos Nombre:

Tengo bastante grande DirectByteBuffery me gustaría producir un gzipped DirectByteBufferde ella sin transferir su contenido a la pila.

El estándar java.util.Deflaterno puede ser útil ya que opera en byte[]la que está en montón por definición.

¿Hay una manera de hacer esto en Java? O tengo que llamar libzipdirectamente a través de JNI?

Holger:

A partir de Java 11, hay

y

lo que permite especificar la entrada y salida como amortiguadores de bytes. Por supuesto, es dependiente de la implementación si en realidad esto permite un procesamiento directo fuera del montón, pero una mirada rápida en OpenJDK reveló que tiene un nativemétodo para el procesamiento-buffer-to-buffer.

Técnicamente, no es GZip, a menos que también está escribiendo los artefactos de ese formato de archivo, pero supongo, que está interesado principalmente en la compresión en lugar del formato de archivo.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=186065&siteId=1
Recomendado
Clasificación