Чтение файла из android внутренней памяти - PullRequest
2 голосов
/ 26 мая 2020

Я поместил в 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" (каталог данных моего приложения). Этот каталог определенно существует, как я вижу в файле устройства managr.

Этот файл содержит 2 строки текста, которые я пытаюсь прочитать, чтобы запустить определенные c задачи на основе их значений. Я пробовал использовать 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 Ответ

2 голосов
/ 26 мая 2020
  1. filesDir для указания на каталог файлов внутреннего хранилища
  2. use блоки хороши, когда вы хотите закрыть поток автоматически.
  3. try-catch блок для обработки любых Исключения ввода-вывода, например FileNotFoundException.
try {
    val file = File(filesDir, "test.txt")
    if (file.exists()) {
        file.bufferedReader().useLines {
            ...
        }
    }
} catch (e: IOException) {
    ...
}

Отличная статья для более глубокого изучения: Средний

Убедитесь, что ваш файл существует, посмотрев на свой внутреннее хранилище:

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

...