【发布时间】:2019-06-16 14:04:08
【问题描述】:
嘿,所以我并没有真正搞砸太多,但我想知道是否真的有一种方法(在我进入一个永无止境的兔子洞之前)在 Dart/Flutter 中读取和写入 CSV 文件?我需要写入文件,不一定要读取它们,而且我愿意竭尽全力这样做。任何库都可以,内置函数甚至更好。感谢您提供任何和所有帮助!
【问题讨论】:
嘿,所以我并没有真正搞砸太多,但我想知道是否真的有一种方法(在我进入一个永无止境的兔子洞之前)在 Dart/Flutter 中读取和写入 CSV 文件?我需要写入文件,不一定要读取它们,而且我愿意竭尽全力这样做。任何库都可以,内置函数甚至更好。感谢您提供任何和所有帮助!
【问题讨论】:
使用来自https://pub.dartlang.org/packages/csv的包csv
如果你有一个List<List<dynamic>>项目需要转换成csv,
String csv = const ListToCsvConverter().convert(yourListOfLists);
如果要将 csv 写入文件,
/// Write to a file
final directory = await getApplicationDocumentsDirectory();
final pathOfTheFileToWrite = directory.path + "/myCsvFile.csv";
File file = await File(pathOfTheFileToWrite);
file.writeAsString(csv);
另外,如果你想将 csv 文件直接读入list<list<dynamic>>
final input = new File('a/csv/file.txt').openRead();
final fields = await input.transform(UTF8.decoder).transform(csvCodec.decoder).toList();
【讨论】:
a/csv/file.txt。在实际场景中,您可以通过读取外部存储目录或应用程序目录来获取文件路径。使用path_provider 包获取目录路径信息。 @Fethi
mode: FileMode.append 追加到最后一个条目,不带空格或转到新行,而执行"$csv\n" 只会被下一个条目覆盖。
根据新包和指南(2019)使用以下代码
包csv来自https://pub.dartlang.org/packages/csv。
如果你有一个List<List<dynamic>>项目需要转换成csv,
String csv = const ListToCsvConverter().convert(yourListOfLists);
然后您可以使用文件操作将字符串写入文件。
file.writeAsString('$csv');
另外,如果你想将 csv 文件直接读入list<list<dynamic>>
final input = new File('a/csv/file.txt').openRead();
final fields = await input.transform(utf8.decoder).transform(new CsvToListConverter()).toList();
【讨论】: