java outputstream bytebuffer

java - ¿Cómo poner el contenido de un ByteBuffer en un OutputStream?



(1)

Necesito poner el contenido de un java.nio.ByteBuffer en un java.io.OutputStream . (desearía tener un Channel lugar pero no lo hago) ¿Cuál es la mejor manera de hacer esto?

No puedo usar el método array() ByteBuffer, ya que puede ser un búfer de solo lectura.

También puedo estar intercalando escrituras en OutputStream entre el uso de este ByteBuffer y tener una matriz regular de byte[] que puedo usar OutputStream.write() directamente.


Mire Channels.newChannel (OutputStream) . Le dará un canal dado un OutputStream. Con el adaptador WritableByteChannel puede proporcionar el ByteBuffer que lo escribirá en OutputStream.

public void writeBuffer(ByteBuffer buffer, OutputStream stream) { WritableByteChannel channel = Channels.newChannel(stream); channel.write(buffer); }

¡Esto debería funcionar!