使用Flutter'文件',在lib目录中读取txt文件的正确路径是什么?

问题描述 投票:1回答:1

我正在使用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文件。

谢谢。

android flutter
1个回答
1
投票

在项目的根文件夹中创建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;
}
© www.soinside.com 2019 - 2024. All rights reserved.