question: public CharBuffer put ( String str , int start , int end ) { if ( isReadOnly ( ) ) { throw new ReadOnlyBufferException ( ) ; } if ( start < 0 || end < start || end > str . length ( ) ) { throw new IndexOutOfBoundsException ( "str.length()=" + str . length ( ) + ", start=" + start + ", end=" + end ) ; } if ( end - start > remaining ( ) ) { throw new BufferOverflowException ( ) ; } for ( int i = start ; i < end ; i ++ ) { put ( str . charAt ( i ) ) ; } return this ; }
target:  Writes chars of the given string to the current position of this buffer, and increases the position by the number of chars written.