Android / Kotlin使用Java.io.File读取文件:路径故障

时间:2017-12-16 14:14:52

标签: android android-studio kotlin java-io

我正在尝试使用Kotlin在android上开发我的第一个应用程序。目前我尝试读取位于我的android项目中的文件。 我在“Java”文件夹下有以下架构:

/java/example.first.com.monapp/controller/FirstActivity.kt
/java/example.first.com.monapp/controller/WelcomeActivity.kt
/java/example.first.com.monapp/model/words.kt
/java/example.first.com.monapp/model/wordsData

wordsData是一个带有原始数据的文本文件(每行3个字,以“;”分隔)

words.kt中的代码是:

package example.first.com.monapp.model

import java.io.File

data class Word(val wordFr:String, val wordRu:String, val active:Boolean)

fun readFileKotlin(): List<Word> {

    val fileToRead="wordsData"
    val wordList = mutableListOf<Word>()
    var reader= File(fileToRead).readLines()
    var wrdLst:List<Word>

    for (line in reader) {
        val wrdProperties = line.split(";")
        wordList.add(Word(wrdProperties[0], wrdProperties[1], wrdProperties[2].toBoolean()))
    }
    wrdLst=wordList
    return wrdLst
}

我在创建活动期间调用了readFileKotlin函数但是我不断得到“java.io.FileNotFoundException”没有这样的文件或目录错误。

我在路径上尝试了几种变体,例如

val fileToRead="model/wordsData"

val fileToRead="/java/example.first.com.monapp/model/"

val fileToRead="/java/example/first/com/monapp/model/"

但这都不起作用。

我做错了什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

将wordsData文件放入android assets文件夹,它是可以将原始数据资产放入android的文件夹

然后在你的Activity中你可以得到一个像这样的InputStream:

getAssets().open("wordsData.txt")