本地存储有哪些方式?
方式 适用场景 插件
Key-Value 存储 简单数据(用户设置、令牌) shared_preferences
数据库存储 结构化数据(用户列表、历史记录) sqflite
文件存储 大文件(图片、日志) path_provider+ dart:io
内存缓存 临时高速访问数据 flutter_cache_manager
import 'dart:io';
import 'package:path_provider/path_provider.dart';
// 获取存储路径
Future<String> get _localPath async {
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
// 获取文件引用
Future<File> get _localFile async {
final path = await _localPath;
return File('$path/data.txt');
}
// 写入文件
Future<File> writeData(String data) async {
final file = await _localFile;
return file.writeAsString(data);
}
// 读取文件
Future<String> readData() async {
try {
final file = await _localFile;
return await file.readAsString();
} catch (e) {
return "";
}
}
关键 API:
getTemporaryDirectory():临时目录(系统可清理)
getApplicationDocumentsDirectory():应用私有目录
getExternalStorageDirectory():外部存储(仅 Android)