readLine method

String? readLine({
  1. String lineDelimiter = '\n',
})

Reads a single line from the file. lineDelimiter the end of line delimiter. May be one or two characters long. Defaults to \n.

Implementation

String? readLine({String lineDelimiter = '\n'}) {
  final line = StringBuffer();
  int byte;
  var priorChar = '';

  var foundDelimiter = false;

  while ((byte = _raf.readByteSync()) != -1) {
    final char = utf8.decode([byte]);

    if (_isLineDelimiter(priorChar, char, lineDelimiter)) {
      foundDelimiter = true;
      break;
    }

    line.write(char);
    priorChar = char;
  }
  final endOfFile = line.isEmpty && foundDelimiter == false;
  return endOfFile ? null : line.toString();
}