【问题标题】:Flutter dart:io problem with reading and writing fileFlutter dart:io读写文件问题
【发布时间】:2021-10-02 09:44:52
【问题描述】:

我正在尝试从 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 时,一切正常,我可以从中读取数据。

【问题讨论】:

  • 正在尝试为 Flutter Web 运行这个?如果是这样,那是你的问题。 dart:io 包在 web 上不起作用
  • 我认为问题是你需要提供完整的路径。您不能将 File 类用于捆绑到您的应用程序中的文件。文件类适用于移动设备上的实际文件(如您的 apk 文件)。试试 path_provider 插件找getTemporaryDirectory 什么的。

标签: flutter dart dart-io


【解决方案1】:

上面显示的Dart 代码有语法错误 - 第一行没有;。当我运行它时,我得到了这个错误:

$ dart run file.dart
file.dart:1:8: Error: Expected ';' after this.
import 'dart:async'
       ^^^^^^^^^^^^

请注意,您不需要导入此库。如果我删除此行,则它会成功读取当前目录中的文件file.txt

您提到使用 rootBundle 读取资产文件 - 这完全适用于 Flutter,而不是您展示的简单 Dart 程序。

正如您问题的 cmets 中所述,dart:io 不能用于 Flutter Web 应用程序,因为浏览器不允许文件访问。它可用于 Flutter 移动和桌面应用程序。见Reading and Writing Files

【讨论】:

    猜你喜欢
    • 2021-01-28
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多