Мне нужно поставить содержимое java.nio.ByteBuffer
в java.io.OutputStream
. (желаю, чтобы у меня был Channel
, но я этого не делал) Каков наилучший способ сделать это?Как поместить содержимое ByteBuffer в OutputStream?
Я не могу использовать метод ByteBuffer array()
, так как он может быть только для чтения.
Я также могу перемешать записи в OutputStream между использованием этого ByteBuffer и иметь регулярный массив byte[]
, который я могу использовать с OutputStream.write()
напрямую.
Если я сохраню канал, а также поток, могу ли я смешивать вызовы обоих? –
Ya, конечно же, уменьшает стоимость создания канала каждый раз :) –
Обратите внимание, что этот подход включает в себя копирование из ByteBuffer во временный массив, который затем записывается в OutputStream. Если производительность важна, вам может потребоваться немного рефакторинга, чтобы избежать ненужных блочных копий. –