我正在使用flutter'文件',尝试读取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“无法打开文件”。
我认为错误来自'File('$ {directory.path} /lib/words.txt')',所以我想知道如何编写代码来读取lib目录中的txt文件。
谢谢。
在项目的根文件夹中创建assets文件夹。在Android Studio中,您可以右键单击Project outline并转到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;
}