Хранение объекта в текстовом файле - PullRequest
0 голосов
/ 03 мая 2019

Мне нужно сохранить список в текстовом файле как сам объект. В настоящее время я могу хранить строки в текстовом файле, используя 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 голосов
/ 03 мая 2019

Вы можете сериализовать объекты и затем сохранить их в файлы.

Начните читать это.

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

0 голосов
/ 03 мая 2019

Это не лучшее решение для сохранения переменных в текстовых файлах.Вам может понадобиться решение для базы данных, так как ваш список увеличивается.Но для списка, который имеет пару значений внутри, у вас все в порядке.Вот простой код, который читает / записывает список из файла.

  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);
  }

Вы также можете рассмотреть возможность использования библиотеки shared_preferences.Это простое решение для хранения простых парных данных ключ-значение.

...