本文概述
Android外部存储空间是我们执行读写操作的存储空间。外部存储器中的文件存储在/ sdcard或/ storage文件夹等中。保存在外部存储器中的文件是可读的, 并且可由用户修改。
在访问应用程序外部存储中的文件之前, 我们应检查设备中外部存储的可用性。
写入外部存储中的文件
java.io包提供openFileOutput()方法, 该方法返回FileOutputStream类的实例, 以将文件写入设备的外部存储中。通过调用getExternalFilesDir()获取仅由你的应用程序使用的目录。要将数据写入文件, 请调用FileOutputStream .write()方法。
var myExternalFile:File = File(getExternalFilesDir(filepath), fileName)
try {
val fileOutPutStream = FileOutputStream(myExternalFile)
fileOutPutStream.write(fileContent.toByteArray())
fileOutPutStream.close()
} catch (e: IOException) {
e.printStackTrace()
}
从外部存储读取文件内容
java.io包提供了openFileInput()方法, 该方法返回FileInputStream类的实例, 并从设备的外部存储读取文件。要从文件读取数据, 请调用BufferedReader()。readLine()。
var myExternalFile:File = File(getExternalFilesDir(filepath), fileName)
val filename = fileName.text.toString()
myExternalFile = File(getExternalFilesDir(filepath), filename)
var fileInputStream =FileInputStream(myExternalFile)
var inputStreamReader: InputStreamReader = InputStreamReader(fileInputStream)
val bufferedReader: BufferedReader = BufferedReader(inputStreamReader)
val stringBuilder: StringBuilder = StringBuilder()
var text: String? = null
while ({ text = bufferedReader.readLine(); text }() != null) {
stringBuilder.append(text)
}
fileInputStream.close()
外部存储访问权限
在AndroidManifest.xml文件中添加以下权限。
Kotlin Android读写外部存储示例
在此示例中, 我们将数据写入外部存储设备中的文件, 并从同一外部存储设备读取相同的文件内容。
activity_main.xml
在activity_main.xml文件中添加以下代码。在此文件中, 为输入文件名, 文件内容添加两个EditText, 并为保存和查看文件内容添加两个Button。
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:c