如何使用 flutter 从资产文件夹同步读取文件(无需等待)

Ole*_*sii 6 file dart flutter

我需要从资产文件夹同步读取简单的 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'));        
  }
Run Code Online (Sandbox Code Playgroud)

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

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

var config = new File('./assets/ble_db/service_uuids.json');
var str = config.readAsStringSync();
Run Code Online (Sandbox Code Playgroud)

我收到错误

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

如何同步从资产文件夹中读取文件?

小智 -1

  1. 你是否在你的pubspec.yaml
flutter:
  assets:
    - assets/
    - assets/ble_db/
Run Code Online (Sandbox Code Playgroud)
  1. 使路径像这样
var config = new File('assets/ble_db/service_uuids.json');
Run Code Online (Sandbox Code Playgroud)

  • 据我所知,您无法使用“文件”加载资源。 (2认同)