public ByteBuffer peek(int len) throws BufferUnderflowException {
  if (len < 0)   throw new IllegalArgumentException();
  if (len > remaining())   throw new BufferUnderflowException();
  if (len == 0)   return EMPTY_BUFFER;
  ByteBuffer chunks[]=peekChunks(len);
  if (chunks.length == 1)   return chunks[0];
  ByteBuffer result=ByteBuffer.allocate(len);
  result.order(order);
  peek(result);
  result.rewind();
  return result;
}

public ByteBuffer peek ( int len ) throws BufferUnderflowException { if ( len < 0 ) throw new IllegalArgumentException ( ) ; if ( len > remaining ( ) ) throw new BufferUnderflowException ( ) ; if ( len == 0 ) return EMPTY_BUFFER ; ByteBuffer chunks [ ] = peekChunks ( len ) ; if ( chunks . length == 1 ) return chunks [ 0 ] ; ByteBuffer result = ByteBuffer . allocate ( len ) ; result . order ( order ) ; peek ( result ) ; result . rewind ( ) ; return result ; }
peek , read without moving read pointer .
