将对象存储到文本文件中

时间:2019-05-03 18:34:04

标签: file dart flutter save

我需要将列表存储在文本文件中作为对象本身。 我目前可以使用path_provider

将字符串存储在文本文件中
void save() async{
  final directory = await getApplicationDocumentsDirectory();
  String path = '${directory.path}/newfile.txt';
  final file = File(path);
  await file.writeAsString(arr.join());
}

但是可以存储列表本身,以便在重启后打开文件后可以按原样访问列表。

2 个答案:

答案 0 :(得分:0)

将变量保存在文本文件中不是最佳解决方案。随着列表的增加,您可能需要一个数据库解决方案。但是对于内部包含几个值的列表,您可以。这是一个简单的代码,可从文件中读取/写入列表。

SELECT STATEMENT
  TABLE ACCESS T BY INDEX ROWID
    BITMAP CONVERSION TO ROWID
      BITMAP OR
        BITMAP INDEX COL1_IDX SINGLE VALUE
        BITMAP INDEX COL2_IDX SINGLE VALUE

您还可以考虑使用 String specialChar = '*'; Future<void> save(List<String> list) async { final directory = await getApplicationDocumentsDirectory(); String path = '${directory.path}/newfile.txt'; final file = File(path); await file.writeAsString(list.join(specialChar)); } Future<List<String>> read() async { final directory = await getApplicationDocumentsDirectory(); String path = '${directory.path}/newfile.txt'; final file = File(path); String raw = await file.readAsString(); return raw.split(specialChar); } 库。这是用于存储简单的键/值配对数据的简单解决方案。

答案 1 :(得分:0)

您可以序列化对象,然后将其存储到文件中。

开始阅读。

https://www.dartlang.org/articles/libraries/serialization