public String line() throws IOException {
  StringBuilder buffer=new StringBuilder();
  while (true) {
    if (buffer.length() > Hash.MAX) {
      throw new IOException("Line too long.");
    }
    int a=real();
    if (a == '\0') {
      return buffer.toString();
    }
    if (a == '\r') {
      int b=real();
      if (b == '\n') {
        return buffer.toString();
      }
 else       if (b > -1) {
        buffer.append((char)a);
        buffer.append((char)b);
      }
    }
 else     if (a > -1) {
      buffer.append((char)a);
    }
  }
}

public String line ( ) throws IOException { StringBuilder buffer = new StringBuilder ( ) ; while ( true ) { if ( buffer . length ( ) > Hash . MAX ) { throw new IOException ( "Line too long." ) ; } int a = real ( ) ; if ( a == '\0' ) { return buffer . toString ( ) ; } if ( a == '\r' ) { int b = real ( ) ; if ( b == '\n' ) { return buffer . toString ( ) ; } else if ( b > - 1 ) { buffer . append ( ( char ) a ) ; buffer . append ( ( char ) b ) ; } } else if ( a > - 1 ) { buffer . append ( ( char ) a ) ; } } }
reads a \ r \ n terminated line of text from the input .
