从 android 内部存储中读取文件
Reading file from android Internal storage
我在 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"
(我的应用程序的数据目录)。这个目录肯定存在,因为我可以在设备文件管理器中看到它。
此文件包含 2 行文本,我试图根据它们的值将其读入 运行 特定任务。我已尝试使用 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")
}
}
非常感谢任何帮助。谢谢!
filesDir
指向内部存储文件目录
use
当你想自动关闭流时,块是好的。
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
context.openFileInput(fileName).use { stream ->
stream.bufferedReader().use { it.readText() }
}
我在 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"
(我的应用程序的数据目录)。这个目录肯定存在,因为我可以在设备文件管理器中看到它。
此文件包含 2 行文本,我试图根据它们的值将其读入 运行 特定任务。我已尝试使用 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")
}
}
非常感谢任何帮助。谢谢!
filesDir
指向内部存储文件目录use
当你想自动关闭流时,块是好的。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
context.openFileInput(fileName).use { stream ->
stream.bufferedReader().use { it.readText() }
}