我的数据通过蓝牙从设备传输到我的 flutter 应用程序。 我有在警报上一一显示的列表。我想收集所有警报的数据,然后将其保存在 csv 文件中。 问题是创建了很多文件,并且每个文件只包含一个列表,这意味着对于每个警报都会创建一个文件。 这是代码:
setupMode.generateCsv((message) async {
List<List<String>> data = [
["No.", "X", " Y", "Z", "Z"],
[message.data[1], message.data[2], message.data[3], message.data[4]],
];
String csvData = ListToCsvConverter().convert(data);
final String directory = (await getApplicationSupportDirectory()).path;
final path = "$directory/csv-${DateTime.now()}.csv";
print(path);
final File file = File(path);
await file.writeAsString(csvData);
print("file saved");
print(csvData.length);
});
}
我想收集所有数据并将其存储在一个文件中。
为了写入一个文件,您需要更改两件事:
文件名称:
final path = "$directory/csv-${DateTime.now()}.csv";
每次调用它时都会创建一个新文件。您应该使用相同的文件名,例如:
final path = "$directory/csv-alert-data.csv";
第二个变化是写入类型:
await file.writeAsString(csvData,mode:FileMode.append);
这会将新数据附加到现有 CSV 文件的末尾。