#file #flutter #dart
#файл #flutter #dart
Вопрос:
Мне нужно синхронно прочитать простой файл json из папки assets. Я создал функцию, которая делает то, что мне нужно:
Future<void&&t; init() async {
_charList = jsonDecode(await rootBundle.loadStrin&('assets/ble_db/characteristic_uuids.json'));
_servicesList = jsonDecode(await rootBundle.loadStrin&('assets/ble_db/service_uuids.json'));
}
Но единственной проблемой этого подхода является асинхронное поведение. Для моей программы было бы намного лучше, если бы это был блокирующий код, который я мог бы вызывать из обычной функции.
Когда я пытаюсь использовать этот подход:
var confi& = new File('./assets/ble_db/service_uuids.json');
var str = confi&.readAsStrin&Sync();
Я получаю сообщение об ошибке
Cannot open file, path = './assets/ble_db/service_uuids.json' (OS Error: No such file or directory, errno = 2)
Как я мог бы синхронно прочитать файл из папки assets?
Комментарии:
1. У меня такая же проблема. Вы решили это?
2. Я начал изучать flutter для удобства, но это только создает больше проблем
Ответ №1:
- вы добавили это в свой
pubspec.yaml
:
flutter:
assets:
- assets/
- assets/ble_db/
- создайте путь следующим образом
var confi& = new File('assets/ble_db/service_uuids.json');
Комментарии:
1. Вы не можете загружать активы с помощью afaik «File».