@Deprecated
  @Override
  public final String readLine() throws IOException {
    StringBuilder line = new StringBuilder(80); // Typical line length
    boolean foundTerminator = false;
    while (true) {
      int nextByte = in.read();
      switch (nextByte) {
      case -1:
        if (line.length() == 0 && !foundTerminator) {
          return null;
        }
        return line.toString();
      case (byte) '\r':
        if (foundTerminator) {
          ((PushbackInputStream) in).unread(nextByte);
          return line.toString();
        }
        foundTerminator = true;
        /* Have to be able to peek ahead one byte */
        if (!(in.getClass() == PushbackInputStream.class)) {
          in = new PushbackInputStream(in);
        }
        break;
      case (byte) '\n':
        return line.toString();
      default:
        if (foundTerminator) {
          ((PushbackInputStream) in).unread(nextByte);
          return line.toString();
        }
        line.append((char) nextByte);
      }
    }
  }
Answers a <code>String</code> representing the next line of text available
in this BufferedReader. A line is represented by 0 or more characters
followed by <code>'\n'</code>, <code>'\r'</code>, <code>"\n\r"</code> or
end of stream. The <code>String</code> does not include the newline
sequence.

@return the contents of the line or null if no characters were read before
        end of stream.

@throws IOException
          If the DataInputStream is already closed or some other IO error
          occurs.

@deprecated Use BufferedReader
ql/src/java/org/apache/hadoop/hive/ql/io/NonSyncDataInputBuffer.java