即使使用显式路径,Kotlin也无法导入JSON文件

时间:2018-04-20 21:10:14

标签: kotlin jvm filenotfoundexception runtimeexception klaxon

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

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
 }

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

2 个答案:

答案 0 :(得分:0)

要使用文本文件或任何其他外部文件,您必须让Android应用程序要求用户授予权限。那里有代码会弹出一个框,要求获得使用文件系统的权限。这是一个让你入门的链接我确信还有许多其他关于这个主题的好教程。 https://developer.android.com/training/permissions/requesting.html

答案 1 :(得分:0)

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