# readLine method

Future<String?> readLine()

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.

## Returns

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.

## Example

    final reader = FileReader('lines.txt');
    try {
      String? line;
      int lineNumber = 1;
      while ((line = await reader.readLine()) != null) {
        print('Line $lineNumber: $line');
        lineNumber++;
      }
    } finally {
      await reader.close();
    }

Throws IOException if an I/O error occurs. Throws StreamClosedException if the reader has been closed.

## Implementation

    Future<String?> readLine() async {
      checkClosed();

      final buffer = StringBuffer();
      int char;

      while ((char = await readChar()) != -1) {
        if (char == 10) { // '\n'
          break;
        } else if (char == 13) { // '\r'
          // Check for '\r\n'
          final nextChar = await readChar();
          if (nextChar != -1 && nextChar != 10) {
            // Put back the character if it's not '\n'
            // This is a simplified implementation - real implementation would use mark/reset
          }
          break;
        } else {
          buffer.writeCharCode(char);
        }
      }

      if (buffer.isEmpty && char == -1) {
        return null; // End of stream
      }

      return buffer.toString();
    }