import 'dart:async'; import 'dart:io'; class FileStorage { const FileStorage( this.tag, this.getDirectory, ); final String tag; final Future Function() getDirectory; Future _getLocalFile() async { final dir = await getDirectory(); return File('${dir.path}/invoiceninja__$tag.json'); } Future load() async { final file = await _getLocalFile(); final contents = await file.readAsString(); return contents; } Future save(String data) async { final file = await _getLocalFile(); return file.writeAsString(data); } Future delete() async { final file = await _getLocalFile(); return file.delete(); } Future exists() async { final file = await _getLocalFile(); return file.existsSync(); } }