Подтвердить что ты не робот

Как поместить содержимое ByteBuffer в OutputStream?

Мне нужно поставить содержимое java.nio.ByteBuffer в java.io.OutputStream. (желаю, чтобы у меня был Channel, но я этого не сделал). Каким образом это можно сделать?

Я не могу использовать метод ByteBuffer array(), так как он может быть только для чтения.

Я также могу вставлять записи в OutputStream между использованием этого ByteBuffer и иметь регулярный массив byte[], который я могу использовать с помощью OutputStream.write() напрямую.

4b9b3361

Ответ 1

Посмотрите Channels.newChannel(OutputStream). Он даст вам канал с выходом OutputStream. С адаптером WritableByteChannel вы можете предоставить ByteBuffer, который будет записывать его в OutputStream.

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

   channel.write(buffer);
}

Это должно сделать трюк!