Как поместить содержимое ByteBuffer в OutputStream?
Мне нужно поставить содержимое java.nio.ByteBuffer
в java.io.OutputStream
. (желаю, чтобы у меня был Channel
, но я этого не сделал). Каким образом это можно сделать?
Я не могу использовать метод ByteBuffer array()
, так как он может быть только для чтения.
Я также могу вставлять записи в OutputStream между использованием этого ByteBuffer и иметь регулярный массив byte[]
, который я могу использовать с помощью OutputStream.write()
напрямую.
Ответы
Ответ 1
Посмотрите Channels.newChannel(OutputStream). Он даст вам канал с выходом OutputStream. С адаптером WritableByteChannel вы можете предоставить ByteBuffer, который будет записывать его в OutputStream.
public void writeBuffer(ByteBuffer buffer, OutputStream stream) {
WritableByteChannel channel = Channels.newChannel(stream);
channel.write(buffer);
}
Это должно сделать трюк!