Kotlin 科特林罐头';t导入JSON文件,即使使用显式路径

Kotlin 科特林罐头';t导入JSON文件,即使使用显式路径,kotlin,jvm,filenotfoundexception,runtimeexception,klaxon,Kotlin,Jvm,Filenotfoundexception,Runtimeexception,Klaxon,我正在尝试使用Kotlin和Android Studio将本地JSON文件导入Android应用程序,但是该应用程序似乎找不到该文件。即使使用显式路径,JVM似乎也无法访问该文件。我试过制作一个.txt文件,JVM也找不到。Klaxon的教程不起作用,因为解析器类已被弃用;这并不重要,因为这不是错误所在。是的,这个文件存在于目录中,它是这样拼写的 fun parse(name: String) : Any? { val inputStream: InputStream = File("C

我正在尝试使用Kotlin和Android Studio将本地JSON文件导入Android应用程序,但是该应用程序似乎找不到该文件。即使使用显式路径,JVM似乎也无法访问该文件。我试过制作一个.txt文件,JVM也找不到。Klaxon的教程不起作用,因为解析器类已被弃用;这并不重要,因为这不是错误所在。是的,这个文件存在于目录中,它是这样拼写的

fun parse(name: String) : Any? {
    val inputStream: InputStream = File("C:\\Users\\Athena\\AndroidStudioProjects\\AD340HW1\\app\\zombie_movies.json").inputStream()
    val lineList = mutableListOf<String>()

    //val cls = Parser::class.java
    //inputStream.bufferedReader().useLines { lines -> lines.forEach {lineList.add(it)  } }
    //val strArray = arrayOfNulls<String>(lineList.size)
    return lineList
 }
fun parse(名称:String):有吗?{
val inputStream:inputStream=File(“C:\\Users\\Athena\\AndroidStudioProjects\\AD340HW1\\app\\zombie\u movies.json”).inputStream()
val lineList=mutableListOf()
//val cls=Parser::class.java
//inputStream.bufferedReader().useLines{lines->lines.forEach{lineList.add(it)}
//val strArray=arrayOfNulls(lineList.size)
返回行列表
}

java.lang.RuntimeException:无法启动活动组件信息{com.example.athena.ad340hw1/com.example.athena.ad340hw1.ZombieMovies}:java.io.FileNotFoundException:C:\Users\athena\AndroidStudio项目\ad340hw1\app\zombie_movies.json(没有这样的文件或目录)

要使用文本文件或任何其他外部文件,您必须让android应用程序请求用户授予权限。有一段代码会弹出一个框,要求获得使用文件系统的权限。这里有一个链接可以让你开始学习,我相信还有很多关于这个主题的好教程

所以我最后做的就是在服务器上托管JSON,然后将其从服务器上取下。这比在我的本地机器上使用它要好,因为将来需要从远程设备访问数据。我想我的根本错误是试图进行得太慢,太有条理;我应该启动我所需要的服务器并完成它。

安卓应用程序在安卓设备(真实或虚拟)上运行,而路径指的是Windows系统(可能是您使用的开发系统)。Android应用程序无法访问此功能。这是有道理的。有关于如何将数据导入应用程序的建议吗?我不想硬编码20部僵尸电影及其描述。如果它只是一个修复文件(或多个),请从这里开始:老实说,rtfm。你知道如何为Android应用程序添加资源吗?关于这一点,有大量的在线文档。给出非答案的人往往这样做,因为他们不知道答案。我们为什么不一起读那些过时的文件呢?