从android内部存储读取文件

时间:2020-05-26 13:54:03

标签: android kotlin bufferedreader filenotfoundexception

我在my Tablet\Tablet\Android\data\my.app.package\files\data中放置了一个名为test.txt的文件,其中包含几行文本。这是Windows报告的。

Kotlin抛出异常(FileNotFound),我也尝试指定我认为是文件的真实路径,但似乎无法使用以下路径来获取它:

"/0/Android/data/my.app.package/files/data/test.txt"(我的应用程序的数据目录)。该目录肯定存在,因为我可以在设备文件管理中看到它。

此文件包含两行文本,我正在尝试阅读这些文本以根据其值运行特定任务。我已经尝试过BufferedReader,但出现FileNotFound异常...

这是我的代码:

fun readFile() {
    val yourFilePath = "/0/Android/data/my.app.package/files/data/test.txt"
    val yourFile = File(yourFilePath)

    print(yourFile.name)
    val file = File(yourFilePath)
    file.bufferedReader().forEachLine {
        println("value = $it")
    }

}

我们非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

  1. filesDir用于指向内部存储文件目录
  2. 如果您想自动关闭视频流,
  3. use块是很好的选择。
  4. try-catch块可处理任何IO异常,例如FileNotFoundException。
try {
    val file = File(filesDir, "test.txt")
    if (file.exists()) {
        file.bufferedReader().useLines {
            ...
        }
    }
} catch (e: IOException) {
    ...
}

一篇更深入的文章,不错的文章:Medium

通过以下方式查看您的内部存储,以确保文件存在:

AndroidStudio -> View -> Tools Windows -> Android Device Explorer

相关问题