我正在使用颤动的“文件”,试图读取lib目录中的txt
文件,但是我不知道应该如何编写代码来读取该文件。我也不知道是否将txt
文件放在正确的位置,这意味着我不知道我是否可以读取lib目录中的文件。
我已经将txt
文件words.txt
放在了放置其他dart文件的lib目录中。
下面是我的代码,试图读取'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);
}
}
P.S。我已经导入了“ dart:io”和“ path_provider.dart”。
运行程序时,我可以看到目录。路径已打印在控制台中,但是e.message'无法打开文件'已打印在控制台中。
我认为该错误来自'File('$ {directory.path} /lib/words.txt')',因此我想知道如何编写代码以读取lib目录中的txt文件
谢谢。
答案 0 :(得分:1)
在项目的根文件夹中创建一个资产文件夹。在Android Studio中,您可以右键单击“项目”大纲,然后转到New > Directory
。
所以现在你应该拥有
root folder
--android
--ios
--lib
--assets
--build
将文本文件添加到新文件夹
您可以仅将文本文件复制到资产目录。例如,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;
}