📅  最后修改于: 2021-01-05 08:39:59             🧑  作者: Mango
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()
在此示例中,我们将数据写入内部存储器中的文件,并从内部存储器中读取相同的文件内容。
在activity_main.xml文件中添加以下代码。在此文件中,为输入文件名,文件内容添加两个EditText ,并为保存和查看文件内容添加两个Button。
在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
输出: