Flutter 颤振用户数据占用大量空间

Flutter 颤振用户数据占用大量空间,flutter,dart,Flutter,Dart,我的Flitter应用程序用户数据占用了大量空间。我目前正在使用以下代码来保存用户数据 class FileUtil { static Future<String> get getFilePath async { final directory = await getApplicationDocumentsDirectory(); return directory.path; } static Future<File> get getFile asyn

我的Flitter应用程序用户数据占用了大量空间。我目前正在使用以下代码来保存用户数据

class FileUtil {
 static Future<String> get getFilePath async {
   final directory = await getApplicationDocumentsDirectory();
   return directory.path;
 }

 static Future<File> get getFile async {
   final path = await getFilePath;
   return File('$path/user.txt');
 }

 static Future<File> saveToFile(String data) async {
   final file = await getFile;
   return file.writeAsString(data);
 }

 static Future readFromFile() async {
   try {
     final file = await getFile;
     String fileContents = await file.readAsString();
     log(fileContents);
     return json.decode(fileContents);
   } catch (e) {
     return "";
   }
 }

 String formatData() {
   String formattedString;
   Map x = {};
   x['a'] = a;
   // other variables
   formattedString = json.encode(x);
   return formattedString;
 }

 void saveData() async {
   try {
     await saveToFile(formatData());
     //print('DATA SAVED');
   } catch (e) {
     //print('Could not save data due to: $e');
   }
 }
}
类FileUtil{
静态未来获取getFilePath异步{
最终目录=等待getApplicationDocumentsDirectory();
返回directory.path;
}
静态未来获取getFile异步{
最终路径=等待getFilePath;
返回文件(“$path/user.txt”);
}
静态未来保存文件(字符串数据)异步{
最终文件=等待获取文件;
返回文件.writeAsString(数据);
}
静态未来readFromFile()异步{
试一试{
最终文件=等待获取文件;
String fileContents=await file.readAsString();
日志(文件内容);
返回json.decode(fileContents);
}捕获(e){
返回“”;
}
}
字符串格式化数据(){
字符串格式化字符串;
映射x={};
x['a']=a;
//其他变量
formattedString=json.encode(x);
返回格式化字符串;
}
void saveData()异步{
试一试{
等待保存文件(formatData());
//打印(“保存的数据”);
}捕获(e){
//打印($e)导致无法保存数据);
}
}
}

每当用户与应用程序中需要保存的内容交互时,我都会运行
saveData()
。这在我的应用程序中经常发生。然而,在使用该应用程序一段时间后,用户数据可以跳到几百MB。我使用了一个JSON计算器来估计
formatData()
输出字符串的空间,它远小于1MB。我应该如何减少用户数据?

您可以查看保存数据的目录。可能有一些有用的信息可以解决您的问题。看看那个目录中的实际文件,看看到底保存了什么。我这里有一个简单的问题,这个函数调用的频率是多少?或者,您可以使用
SharedReferences
而不是保存在文件中。检查,然后。我对
SharedReferences
有很好的经验。这非常简单,而且fastI不能真正使用SharedReference,因为有些数据包括地图和列表。每当用户决定在列表中添加/删除某些内容、更改用户名、编辑设置时,就会经常调用该函数。您考虑过使用NoSQL方法吗?喜欢或