在Dart中读取“ TXT”文件

时间:2018-09-16 00:46:46

标签: android ios dart flutter

我正在尝试从列表项中读取(从资产).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)

我该怎么办?我使用纯文本将每一行放入一个项目中以显示整个列表

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()以查看运行位置。