gpt4 book ai didi

android - 使用Flutter 'file' ,读取lib目录下的txt文件的正确路径是什么?

转载 作者:IT王子 更新时间:2023-10-29 06:42:48 52 4
gpt4 key购买 nike

我正在使用 flutter 'file',试图读取 lib 目录中的 txt 文件,但我不知道应该如何编写代码来读取该文件。我也不知道我是否把txt文件放在了正确的地方,这意味着我不知道我是否可以读取lib目录中的文件。

我在lib目录下放了一个txt文件words.txt,其他dart文件都放在这里

下面是我尝试读取“word.txt”文件的代码:

Future<String> readFile() async {
var text;
try {
final directory = await getApplicationDocumentsDirectory();
print(directory.path);

final file = File('${directory.path}/lib/words.txt');
text = await file.readAsString();
return text;
} catch (e) {
print(e.message);
}
}

附言我已经导入了“dart:io”和“path_provider.dart”。

当我运行该程序时,我可以看到 directory.path 打印在控制台中,但是 e.message 'Cannot open file' 打印在控制台中。

我认为错误来自'File('${directory.path}/lib/words.txt')',所以我想知道我应该如何编写代码来读取lib目录中的txt文件.

谢谢。

最佳答案

在项目的根文件夹中创建一个 Assets 文件夹。在 Android Studio 中,您可以右键单击项目大纲并转到 New > Directory

所以现在你应该有

root folder
--android
--ios
--lib
--assets
--build

将您的文本文件添加到新文件夹

您只需将文本文件复制到 Assets 目录即可。例如,words.txt 的相对路径为 assets/words.txt

打开项目根目录中的 pubspec.yaml 文件。更新为

flutter:
assets:
- assets/words.txt

import 'dart:async' show Future;
import 'package:flutter/services.dart' show rootBundle;

Future<String> loadAsset() async {
var s = await rootBundle.loadString('assets/my_text.txt');
print(s);//for debug
return s;
}

关于android - 使用Flutter 'file' ,读取lib目录下的txt文件的正确路径是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55877159/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com