我有一个包含几个键和值的列表,然后将它们映射到要显示的数据表中。
List<Map<String, String>> listOfColumns = [
{"Name": "John", "Number": "1", "State": " "},
{"Name": "Brad", "Number": "2", "State": " "},
{"Name": "Ryan", "Number": "3", "State": " "},
{"Name": "Grant", "Number": "4", "State": " "},
];
现在,我希望保存数据表中的数据。因此,我只是使用File IO系统,创建了一个名为_save()和_read()的异步函数,在_save()中,我将listOfColumns转换为字符串。
_read() async {
try {
final directory = await getExternalStorageDirectory();
final file = File('${directory.path}/my_file.txt');
text = await file.readAsString();
} catch (e) {
print("Couldn't read file");
}
}
_save() async {
final directory = await getExternalStorageDirectory();
final file = File('${directory.path}/my_file.txt');
final List<Map<String, String>> data = listOfColumns;
await file.writeAsString(data.toString());
print('saved');
}
现在,要从文件中读取数据,这就是问题-我实际上如何将可变文本变回List<Map<String,String>>
?我完全不知道如何实现这一目标。非常感谢您的帮助。谢谢。
答案 0 :(得分:2)
您实际上应该首先将其另存为JSON(使用jsonEncode
,然后可以轻松地将其转换回去:
<p class="card-text">
@{
string x = item.Info.Length > 100 ? item.Info.Substring(0, 100) : item.Info;
x = x.Length == 100 ? x + "..." : x;
}
@Html.Raw(x)
</p>
现在,您可以使用jsonDecode
轻松加载数据:
Future<void> _save() async {
...
final jsonString = jsonEncode(listOfColumns);
await file.writeAsString(jsonString);
}