Как загрузить файл json в модуль kotlin для анализа GSON - PullRequest
1 голос
/ 09 мая 2020

Мне нужно прочитать файл 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?

...