code: public synchronized boolean next(Text key, Text value)
      throws IOException {
      Text tKey = key;
      Text tValue = value;
      byte[] line = null;
      int lineLen = -1;
      if (lineRecordReader.next(dummyKey, innerValue)) {
        line = innerValue.getBytes();
        lineLen = innerValue.getLength();
      } else {
        return false;
      }
      if (line == null)
        return false;
      int pos = findSeparator(line, 0, lineLen, this.separator);
      if (pos == -1) {
        tKey.set(line, 0, lineLen);
        tValue.set("");
      } else {
        int keyLen = pos;
        byte[] keyBytes = new byte[keyLen];
        System.arraycopy(line, 0, keyBytes, 0, keyLen);
        int valLen = lineLen - keyLen - 1;
        byte[] valBytes = new byte[valLen];
        System.arraycopy(line, pos + 1, valBytes, 0, valLen);
        tKey.set(keyBytes);
        tValue.set(valBytes);
      }
      return true;
    }
docs: Read key/value pair in a line.