Necesito poner el contenido de un java.nio.ByteBuffer
en un java.io.OutputStream
. (Ojalá tuviera un Channel
en su lugar pero no lo sé) ¿Cuál es la mejor manera de hacerlo?¿Cómo poner el contenido de un ByteBuffer en un OutputStream?
no puedo usar el método de la ByteBuffer array()
ya que puede ser un búfer de sólo lectura.
También puedo estar intercalando escrituras al OutputStream entre usar este ByteBuffer y tener una matriz regular de byte[]
que puedo usar directamente con OutputStream.write()
.
si sigo el canal, así como la corriente, que puede entremezclar llamadas a ambos? –
Ya, seguro posible, reduce el costo de crear el canal cada vez :) –
Tenga en cuenta que este enfoque implica la copia de la ByteBuffer en una matriz temporal, que se escribirá a la OutputStream. Si el rendimiento es importante, es posible que deba hacer un poco de refactorización para evitar copias en bloque innecesarias. –