Transfers the specified source buffer's data to this buffer starting at
the current {@code writerIndex} until the source buffer becomes
unreadable, and increases the {@code writerIndex} by the number of
the transferred bytes. This method is basically same with
{@link #writeBytes(ByteBuf, int, int)}, except that this method
increases the {@code readerIndex} of the source buffer by the number of
the transferred bytes while {@link #writeBytes(ByteBuf, int, int)}
does not.
If {@code this.writableBytes} is less than {@code src.readableBytes},
{@link #ensureWritable(int)} will be called in an attempt to expand
capacity to accommodate.
Transfers the specified source buffer's data to this buffer starting at the current {@code writerIndex} until the source buffer becomes unreadable, and increases the {@code writerIndex} by the number of the transferred bytes. This method is basically same with {@link #writeBytes(ByteBuf, int, int)}, except that this method increases the {@code readerIndex} of the source buffer by the number of the transferred bytes while {@link #writeBytes(ByteBuf, int, int)} does not. If {@code this.writableBytes} is less than {@code src.readableBytes}, {@link #ensureWritable(int)} will be called in an attempt to expand capacity to accommodate.