我正在使用sensors包从我的手机中收集加速度计数据,将这些数据添加到一个List<AccelerometerEvent>
中,然后将这些数据组合成一个( csv )字符串,这样我就可以使用file.writeAsString()将这些数据保存为csv文件。我遇到的问题是,将数据组合成字符串需要花费太长的时间。
例如:
列表长度: 28645
合并成csv字符串的毫秒数: 113580
代码:
for (AccelerometerEvent event in history) {
dataString = dataString + '${event.timestamp},${event.x},${event.y},${event.z}\n';
}
什么是一种更有效的方法?我是否应该将数据合并到一个字符串中,或者是否有更好的方法将这些数据保存到文件中?
谢谢
发布于 2021-01-21 02:18:04
创建文件对象
使用列名写入第一行,之后的每一行(在\n之后)将是一个事件
请参阅: FileMode.append
将添加新字符串而不替换文件中的现有字符串
File file = File('events.csv');
file.writeAsStringSync('TIMESTAMP, X, Y, Z\n', mode: FileMode.append);
for (AccelerometerEvent event in history) {
final x = event.x;
final y = event.y;
final z = event.z;
final timestamp = event.timestamp;
String data = '$timestamp, $x, $y, $z';
file.writeAsStringSync('$data\n', mode: FileMode.append);
}
https://stackoverflow.com/questions/65814749
复制相似问题