/**
  * Write key-value pair at the head of this stream to the objects provided; get next key-value
  * pair from proxied RR.
  */
 public boolean next(K key, U value) throws IOException {
   if (hasNext()) {
     WritableUtils.cloneInto(key, khead);
     WritableUtils.cloneInto(value, vhead);
     next();
     return true;
   }
   return false;
 }
 /** Clone the key at the head of this RR into the object supplied. */
 public void key(K qkey) throws IOException {
   WritableUtils.cloneInto(qkey, khead);
 }