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!