Flushes and releases any resources. Idempotent.
@override Future<void> close() => _synchronized(() async { if (_closed) return; _closed = true; await _file.flush(); await _file.close(); });