read method
Reads from start offset a maximum amount of length bytes. If start
is null, then starts from the beginning of the data. If length is null,
then reads up to the end.
Implementation
@override
Future<Stream<List<int>>> read({int? start, int? length}) async {
List<int> range = validateRange(start, length);
start = range[0];
length = range[1];
await _file.setPosition(start);
Future<Uint8List> bytes = _file.read(length);
return Stream.fromFuture(bytes);
}