【问题标题】:How to read file from assets folder synchronously (without await) using flutter如何使用颤振同步(无等待)从资产文件夹中读取文件
【发布时间】:2020-08-09 09:34:52
【问题描述】:

我需要从 assets 文件夹中同步读取简单的 json 文件。 我做了一个功能,它正在做我需要的:

Future<void> init() async {
    _charList = jsonDecode(await rootBundle.loadString('assets/ble_db/characteristic_uuids.json'));
    _servicesList = jsonDecode(await rootBundle.loadString('assets/ble_db/service_uuids.json'));        
  }

但是这种方法的唯一问题是异步行为。对于我的程序来说,如果它是一个我可以从普通函数调用的阻塞代码会更好。

当我尝试使用这种方法时:

var config = new File('./assets/ble_db/service_uuids.json');
var str = config.readAsStringSync();

我遇到了一个错误

Cannot open file, path = './assets/ble_db/service_uuids.json' (OS Error: No such file or directory, errno = 2)

如何同步读取 assets 文件夹中的文件?

【问题讨论】:

  • 我遇到了同样的问题。你解决了吗?
  • 我开始学习 Flutter 是为了方便,但它只会带来更多问题

标签: file flutter dart


【解决方案1】:
  1. 你在pubspec.yaml中添加了这个:
flutter:
  assets:
    - assets/
    - assets/ble_db/
  1. 这样制作路径
var config = new File('assets/ble_db/service_uuids.json');

【讨论】:

  • 您无法使用“文件”afaik 加载资产。
猜你喜欢
  • 2023-03-14
  • 2020-02-14
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 2020-05-25
  • 2013-10-06
相关资源
最近更新 更多