我正在使用 flutter“文件”,尝试读取txtlib 目录中的文件,但我不知道应该如何编写代码来读取该文件。我也不知道我是否将该txt文件放在正确的位置,这意味着我不知道是否可以读取 lib 目录中的文件。
我已经在lib目录中放置了一个txt文件,其他dart文件也放置在该目录中。words.txt
下面是我尝试读取“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);
}
}
Run Code Online (Sandbox Code Playgroud)
PS我已经导入了“dart:io”和“path_provider.dart”。
当我运行该程序时,我可以看到directory.path打印在控制台中,但是e.message“无法打开文件”打印在控制台中。
我认为错误来自 'File('${directory.path}/lib/words.txt')',所以我想知道我应该如何编写代码来读取 lib 目录中的 txt 文件。
谢谢。
在项目的根文件夹中创建一个资产文件夹。在 Android Studio 中,您可以右键单击项目大纲并转到New > Directory.
所以现在你应该有
root folder
--android
--ios
--lib
--assets
--build
Run Code Online (Sandbox Code Playgroud)
将文本文件添加到新文件夹中
您只需将文本文件复制到资产目录中即可。words.txt例如,的相对路径为assets/words.txt。
打开项目根目录中的 pubspec.yaml 文件。将其更新为
flutter:
assets:
- assets/words.txt
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2488 次 |
| 最近记录: |