【问题标题】:How to read and write a text file in Flutter如何在 Flutter 中读写文本文件
【发布时间】:2019-06-04 23:29:03
【问题描述】:

如何从文件中读取文本并将文本写入文件?

我一直在学习如何在文件中读取和写入文本。我发现了另一个关于reading from assets 的问题,但不一样。我将根据我从文档中学到的知识在下面添加我的答案。

【问题讨论】:

    标签: dart flutter text-files


    【解决方案1】:

    设置

    pubspec.yaml中添加如下插件:

    dependencies:
      path_provider: ^1.6.27
    

    将版本号更新为current

    并将其导入您的代码中。

    import 'package:path_provider/path_provider.dart';
    

    您还必须导入 dart:io 才能使用 File 类。

    import 'dart:io';
    

    写入文本文件

    _write(String text) async {
      final Directory directory = await getApplicationDocumentsDirectory();
      final File file = File('${directory.path}/my_file.txt');
      await file.writeAsString(text);
    }
    

    从文本文件中读取

    Future<String> _read() async {
      String text;
      try {
        final Directory directory = await getApplicationDocumentsDirectory();
        final File file = File('${directory.path}/my_file.txt');
        text = await file.readAsString();
      } catch (e) {
        print("Couldn't read file");
      }
      return text;
    }
    

    注意事项

    【讨论】:

    • 我使用了 _read 函数但我遇到了这个问题:“函数‘文件’没有定义。”
    • @Heyran.rs 你需要导入dart:io。在 Android Studio 中,您可以将光标放在 File 上,然后在 Mac 中按 Option+Return 或在 Linux/Windows 中按 Alt+Enter 从菜单中自动添加。
    • 当然,我认为这可能是一个解决方案。我将自己测试它是否确实是pub.dev/packages/path_provider_linux。它为 linux 实现了 package:path_provider 功能。
    • 如我所愿,我在 Linux 上测试了 path_provider 包。我确认这个包已经支持它了,所以这种在 Linux 上的桌面版 Flutter 上的“读写”实践确实有效。崩溃发生在网络上。顺便说一句,在我的例子中,创建的 .txt 的目录位于 Documents。
    • @IvánYoed,感谢您的更新。我还在回答中添加了注释。
    【解决方案2】:

    作为@Suragch 回答的附加信息,如果您想找到您创建的文件,您可以按照图片所示进行操作:

    然后在该数据文件夹中,再次转到名为 data 的文件夹并搜索您的包,然后转到:

    如果您碰巧创建了新文件,为了能够看到它们,只需右键单击并单击Synchronize

    【讨论】:

    • 如果您没有看到 设备文件资源管理器,您可以检查事件日志,看看您是否可以根据您的 AndroidManifest.xml 文件配置 Android 框架,之后,您将在 View -> Tools Windows 下看到 Device File Explorer
    猜你喜欢
    • 2020-09-24
    • 2019-12-02
    • 2020-08-21
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2020-12-24
    相关资源
    最近更新 更多