我正在尝试从列表项中读取(从资产).txt文件,所以我正在这样做:
list.add(await rootBundle.loadString('assets/jolo.txt'));
它将整个文档放入“数据”中,但显示列表为空。
所以我尝试了其他事情:
new File('assets/jolo.txt')
.openRead()
.transform(utf8.decoder)
.transform(new LineSplitter())
.forEach((l) => list.add(Item(name: l)));
但是这会抛出一个错误: FileSystemException:无法打开文件,路径='assets / jolo.txt'(操作系统错误:无此类文件或目录,errno = 2)
我该怎么办?我使用纯文本将每一行放入一个项目中以显示整个列表
答案 0 :(得分:2)
要加载资产,您必须使用捆绑包。 loadString
负责读取资产并处理编码,因此您将获得String。在字符串上使用LineSplitter.convert
:
String jolo = await rootBundle.loadString('assets/jolo.txt');
List<Item> list =
LineSplitter().convert(jolo).map((s) => Item(name: s)).toList();
答案 1 :(得分:0)
您可能未在您认为的目录中运行。 尝试查看Directory.current()以查看运行位置。