Android 如何使用kotlin读取和写入本地JSON

Android 如何使用kotlin读取和写入本地JSON,android,kotlin,Android,Kotlin,我按照一个教程设置从资产读取JSON文件并使用GSON进行解析。这一切都很好,但我希望用户也能够通过在应用程序中进行更改来编辑json文件 我读到你不能编辑资产文件夹中的文件,但我不知道我应该把文件放在哪里,以及如何正确引用它的路径,在线文章似乎对我没有帮助。因此,有两个问题: 1)我可以将JSON文件移动到MainActivity目录中的新包中吗?这将包括在应用程序APK中吗 2)如何加载此。。。?从我使用的资产加载当前json val mySquibsJSONfile = g

我按照一个教程设置从资产读取JSON文件并使用GSON进行解析。这一切都很好,但我希望用户也能够通过在应用程序中进行更改来编辑json文件

我读到你不能编辑资产文件夹中的文件,但我不知道我应该把文件放在哪里,以及如何正确引用它的路径,在线文章似乎对我没有帮助。因此,有两个问题:

1)我可以将JSON文件移动到MainActivity目录中的新包中吗?这将包括在应用程序APK中吗

2)如何加载此。。。?从我使用的资产加载当前json

        val mySquibsJSONfile = getApplication<Application>().assets.open("MySquibs.json")

那么替换文件中的json容易吗?

您打包到APK中的任何内容都将是只读的,因为APK是一个二进制文件,安装时不会展开。因此,仅仅将您的资产转移到一个新的包中是没有帮助的。并且“src”目录不会出现在APK中

您必须在运行时将资产复制到Android的文件系统,并对该副本进行任何修改

Android现在对文件的读写位置和方式有很多限制,因此您可能需要非常仔细地阅读:

val mySquibsJSONfile = File("./src/main/java/com/myname/myapp/json/MySquibsLocal.json").inputStream()