code: @Override
      public String readLine() throws IOException {
          StringBuilder result = new StringBuilder();
          for (;;) {
              int intRead = read();
              if (intRead == -1) {
                  return result.length() == 0 ? null : result.toString();
              }
  
              char c = (char)intRead;
              if (c == '\n' || c == '\r') break;
              result.append(c);
          }
          return result.toString();
      }
docs: Reads a line of text. A line is considered to be terminated by any one of a line feed ('\n'),
  a carriage return ('\r'), or a carriage return followed immediately by a linefeed.
  
  @return A String containing the contents of the line, not including any line-termination characters,
  or null if the end of the stream has been reached