首页 > 解决方案 > 在flutter中从资产中读取文件后逐行读取字符串

问题描述

我可以成功读取文件,但只处理了一部分行。如您所见:通过String类的split方法拆分原始字符串,我不知道为什么。是否有另一种方法将字符串拆分为行?

String rawStr = rootBundle.loadString('assets/sql/create_tables');
List<String> list = rawStr.split("\n");
list.map( (e) {
    print("> $e");
    db.execute(e);
});

我希望所有的行都会被处理。

从 assets 和 process 中逐行读取的代码应该如下。

    String rawStr = rootBundle.loadString('assets/sql/create_tables');
Iterable<String> list = LineSplitter.split(rawStr);
list.forEach((e){
if (e?.isEmpty ?? true) {
    //Do nothing
} else {
    print("> $e");
    db.execute(e);
}
});

标签: flutterdart

解决方案


尝试使用forEach()如下所示。

list.forEach((e){
   print("> $e");
   db.execute(e);
});

祝你好运。


推荐阅读