gpt4 book ai didi

android - 从文件加载时格式错误的 Json

转载 作者:行者123 更新时间:2023-11-29 18:37:15 27 4
gpt4 key购买 nike

当我从资源中的 .json 文件加载一些模拟数据时,有时返回的数据已损坏并显示 �������������������� 符号。但实际数据没有这些符号。我尝试加载的代码低于为什么会发生这种情况?谢谢

fun loadJSONFromAsset(fileName: String): String? {
val json: String
try {
val `is` = javaClass.classLoader.getResourceAsStream(fileName)

val size = `is`.available()
val buffer = ByteArray(size)
`is`.read(buffer)
`is`.close()
json = String(buffer, Charset.defaultCharset())
} catch (ex: IOException) {
ex.printStackTrace()
return null
}
return json
}

最佳答案

未自行压缩的文件将在放入 Assets 文件夹时进行压缩。您必须使用 AssetManager 打开文件

val jsonString = context
.assets
.open("myfile.json")
.bufferedReader()
.readText()

或在构建时禁用 .json 文件的压缩。

android {
aaptOptions {
noCompress 'json'
}
}

此外,我认为您没有充分的理由使用 classLoader.getResourceAsStream(fileName) 打开 apk 中 bundle 的文件,在 Android 上您可以使用 AssetManager资源。我刚找到这个interesting article ,它表明使用 getResourceAsStream 也可能非常慢。

关于android - 从文件加载时格式错误的 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53774571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com