问题描述
我正在尝试从 TXT 文件中读取数据,但出了点问题。有一个代码
import 'dart:async'
import 'dart:io';
void main(){
File('file.txt').readAsstring().then((String contents){
print(contents);
});
}
这是来自官方文档的代码。我也尝试在 File('') 中更改我的文件的路径,例如 (assets/file.txt) 但仍然没有任何效果。启动程序后出现此错误
Error: Unsupported operation: _Namespace
我知道我需要在 pbuspec.yaml 文件中添加资产,我做到了。 同样,当我使用 services.dart 中的 rootBundle 读取此 file.txt 时,一切正常,我可以从中读取数据。
解决方法
上面显示的 Dart
代码有一个语法错误 - 第一行没有 ;
。当我运行它时,我收到此错误:
$ dart run file.dart
file.dart:1:8: Error: Expected ';' after this.
import 'dart:async'
^^^^^^^^^^^^
请注意,您不需要导入此库。如果我删除这一行,那么它会成功读取当前目录中的文件 file.txt
。
您提到使用 rootBundle
读取资产文件 - 这完全适用于 Flutter
,而不是您展示的简单 Dart
程序。
如您问题的评论中所述,dart:io
不能用于 Flutter Web 应用程序,因为浏览器不允许文件访问。它可用于 Flutter 移动和桌面应用程序。见Reading and Writing Files。