Flutter dart:io 读写文件问题

问题描述

我正在尝试从 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