📜  Kotlin Android读写内部存储

📅  最后修改于: 2021-01-05 08:39:59             🧑  作者: Mango

Kotlin Android读写内部存储

Android Internal Storage是我们存储文件的设备内存。默认情况下,存储在内部存储器中的文件是私有文件,只有相同的应用程序才能访问它。无法从应用程序外部访问它们。

为了从文件读取数据或将数据写入文件,Android分别提供了openFileInput()openFileOutput()方法。

当用户从设备上卸载其应用程序时,其内部存储文件也将被删除。

写入内部存储中的文件

为了将文件写入设备的内部存储中, java.io包提供了openFileOutput()方法,该方法返回FileOutputStream类的实例。要将数据写入文件,请调用FileOutputStream .write()方法。

val file:String = fileName.text.toString()
val data:String = fileData.text.toString()
val fileOutputStream:FileOutputStream
try {
    fileOutputStream = openFileOutput(file, Context.MODE_PRIVATE)
    fileOutputStream.write(data.toByteArray())
}catch (e: Exception){
    e.printStackTrace()
}

从内部存储读取文件内容

为了从设备的内部存储读取文件, java.io包提供了openFileInput()方法,该方法返回FileInputStream类的实例。要从文件读取数据,请调用BufferedReader()。readLine()

var fileInputStream: FileInputStream? = null
fileInputStream = openFileInput(filename)
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)
}
//Displaying data on EditText
fileData.setText(stringBuilder.toString()).toString()

Kotlin Android读写内部存储示例

在此示例中,我们将数据写入内部存储器中的文件,并从内部存储器中读取相同的文件内容。

activity_main.xml

在activity_main.xml文件中添加以下代码。在此文件中,为输入文件名,文件内容添加两个EditText ,并为保存和查看文件内容添加两个Button。




    

    

    

    

    

MainActivity.kt

在MainActivity.kt类中添加以下代码。在此类中,我们将通过单击保存按钮将文件名和数据保存在内部存储器中,然后通过单击查看按钮来检索文件内容。

package example.javatpoint.com.kotlininternalstoragereadwrite

import android.content.Context
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import java.io.*


class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val fileName = findViewById(R.id.editFile)
        val fileData = findViewById(R.id.editData)

        val btnSave = findViewById

输出: