如何在CSV文件上保存数据?



我有数据从设备通过蓝牙到我的扑动应用程序。我有一个列表,一个接一个地显示在提醒上。我想收集所有警报的数据,然后将其保存为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文件的末尾。

最新更新