Мне нужно прочитать файл Json, чтобы загрузить данные в память.
Проект имеет следующую структуру модулей:
|_ app
|_ data
|_ datasource
|_ theory.json
|_ domain
Я пытался сохранить json файл в модуль data
, а затем в классе источника данных я попытался прочитать файл, который будет проанализирован библиотекой GSON.
Итак, я попытался использовать класс Kotlin модуля data
:
val fileInputStream = FileInputStream("theory.json")
val fileInputStream = FileInputStream("/theory.json")
val fileInputStream = FileInputStream("../theory.json")
И всегда получаю такую ошибку:
theory.json: open failed: ENOENT (No such file or directory)
Но я кладу файл в папку assets
пакета app
, а потом делаю:
|_ app
|_assets
|_ theory.json
|_ data
|_ datasource
|_ domain
val file = context?.assets?.open("theory.json")
Получив файл, я могу прочитать файл и проанализировать его с помощью библиотеки Gson, поэтому он работает идеально.
Проблема в том, что для того, чтобы заставить источник данных работать, Мне нужно создать файл в модуле app
, а затем начать передавать его через параметры в источник данных.
Есть ли способ заставить его работать «изолированно» от модуля app
и заставить его работать в модуле data
?