code: public static void readPaired(final Readable firstReadable,
                                    final Readable secondReadable,
                                    final PairedEndListener listener) throws IOException {
  
          checkNotNull(firstReadable);
          checkNotNull(secondReadable);
          checkNotNull(listener);
  
          // read both FASTQ files into RAM (ick)
          final List<Fastq> reads = Lists.newArrayList();
          SangerFastqReader fastqReader = new SangerFastqReader();
          fastqReader.stream(firstReadable, new StreamListener() {
                  @Override
                  public void fastq(final Fastq fastq) {
                      reads.add(fastq);
                  }
              });
          fastqReader.stream(secondReadable, new StreamListener() {
                  @Override
                  public void fastq(final Fastq fastq) {
                      reads.add(fastq);
                  }
              });
  
          // .. and sort by description
          Collections.sort(reads, new Ordering<Fastq>() {
                  @Override
                  public int compare(final Fastq left, final Fastq right) {
                      return left.getDescription().compareTo(right.getDescription());
                  }
              });
  
          for (int i = 0, size = reads.size(); i < size; ) {
              Fastq left = reads.get(i);
              if ((i + 1) == size) {
                  listener.unpaired(left);
                  break;
              }
              Fastq right = reads.get(i + 1);
  
              if (isLeft(left)) {
                  if (isRight(right)) {
                      // todo:  assert prefixes match
                      listener.paired(left, right);
                      i += 2;
                  }
                  else {
                      listener.unpaired(right);
                      i++;
                  }
              }
              else {
                  listener.unpaired(left);
                  i++;
              }
          }
      }
docs: Read the specified paired end reads.  The paired end reads are read fully into RAM before processing.
  
  @param firstReadable first readable, must not be null
  @param secondReadable second readable, must not be null
  @param listener paired end listener, must not be null
  @throws IOException if an I/O error occurs
  @deprecated by {@link #streamPaired(Readable,Readable,PairedEndListener)}, will be removed in version 2.0