所以我有数千个坐标需要绘制,我知道的最好方法之一是将坐标保存为资源文件夹中的.txt,然后使用
拉取它val json_string = application.assets.open(file_name).bufferedReader().use{it.readText()}
但是当拉取文件时,它会将文件作为字符串读取,尽管文件以数组格式保存,如下所示:
"97.951476367000055,3.155017079000061","97.951800004000063,3.154406602000051","97.949325673000033,3.156145963000029","97.948721732000081,3.15657051200003","97.948646156000052,3.156623638000042","97.947494978000066,3.15786896100002","97.94724135000007,3.158143331000076","97.947000011000057,3.158404405000056","97.946790649000036,3.158630887000072","97.946272953000062,3.15919092200005","97.945702608000033,3.15980791000004","97.945553326000038,3.159969400000023","97.944601930000033,3.160998592000055","97.944409762000078,3.161206474000039"....
我想以数组格式读取资产,例如用逗号分隔并用引号分组,例如:
如何在 Kotlin 中将这个 .txt 文件资源读取为字符串数组或 ArrayList< String > 格式?
谢谢!
创建如下所示的模型
data class Coordinate(val latitude: String, val longitude: String)
//从资源文件中读取坐标并转换为ArrayList的函数
fun readCoordinatesFromAsset(context: Context, assetFileName: String):
ArrayList<String> {
val gson = Gson()
val arrayList = ArrayList<String>()
try {
context.assets.open(assetFileName).use { inputStream ->
val reader = InputStreamReader(inputStream)
val coordinates = gson.fromJson(reader, ArrayList::class.java)
// Convert the ArrayList of Coordinate objects to an ArrayList of strings
for (coordinate in coordinates) {
arrayList.add(coordinate.toString())
}
}
} catch (e: Exception) {
e.printStackTrace()
}
return arrayList
}
您的文本文件应类似于以下格式
[
"97.951476367000055,3.155017079000061",
"97.951800004000063,3.154406602000051",
"97.949325673000033,3.156145963000029",
"97.948721732000081,3.15657051200003",
"97.948646156000052,3.156623638000042",
"97.947494978000066,3.15786896100002",
"97.94724135000007,3.158143331000076",
"97.947000011000057,3.158404405000056",
"97.946790649000036,3.158630887000072",
"97.946272953000062,3.15919092200005",
"97.945702608000033,3.15980791000004",
"97.945553326000038,3.159969400000023",
"97.944601930000033,3.160998592000055",
"97.944409762000078,3.161206474000039"
]