Всякий раз, когда вы читаете данные в буфер, если вы хотите записать буфер в другой канал, вам нужно позвонить: buffer.flip()
перед записью.Вам не нужно дублировать буфер, если вы пишете в том же потоке, что и читаете.
Также - исключение BufferOverflowException означает, что вы помещаете в буфер больше данных, чем его емкости.Это похоже на то, что буфер не получает buffer.clear()
, вызванный для сброса позиции в ноль.
Не хватает написанного выше кода, чтобы точно определить, в чем проблема.