close method

Future<void> close()

Closes the writer and finalizes the map file.

This method closes the underlying file sink and then re-opens the file to write the final, correct file size into the header, as this value is not known until all data has been written.

Implementation

Future<void> close() async {
  await _sink.close();
  // todo correct invalid data in file
  RandomAccessFile raf = await File(filename).open(mode: FileMode.writeOnlyAppend);
  // position of filesize
  Writebuffer writebuffer = Writebuffer();
  int length = await File(filename).length();
  writebuffer.appendInt8(length);
  await writebuffer.writeIntoAt(28, raf);
  await raf.close();
}