docs: @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();
      }