Лучший способ, который работает и с прямыми буферами:
class ByteBufferOutputStream extends OutputStream
{
private final ByteBuffer buffer;
public ByteBufferOutputStream(ByteBuffer buffer)
{
this.buffer = buffer;
}
public void write(int b) throws IOException
{
buffer.put((byte) b);
}
}
Обратите внимание, что для этого требуется вызвать buffer.flip () после того, как вы закончите запись в него, прежде чем сможете читать из него.