read method
Reads a single line from the file.
lineDelimiter
the end of line delimiter.
May be one or two characters long.
Defaults to the platform specific delimiter as
defined by Platform().eol
.
Implementation
Future<String?> read({String? lineDelimiter}) async {
lineDelimiter ??= Platform().eol;
final line = StringBuffer();
int byte;
var priorChar = '';
var foundDelimiter = false;
while ((byte = await (await _raf).readByte()) != -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();
}