1. 程式人生 > 程式設計 >Android開發實現檔案儲存功能

Android開發實現檔案儲存功能

本文例項為大家分享了Android開發實現檔案儲存的具體程式碼,供大家參考,具體內容如下

這個程式只有一個Activity, Activity中只有一個Edittext。實現的功能是在Activity銷燬之前將EditText的內容儲存到一個檔案中,在Activity建立的時候,從該檔案中讀取內容並寫道EditText中。程式碼如下,在onCreate載入資料,在onDestroy中儲存資料。

MainActivity.kt

package com.example.filetest

import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import java.io.*
import java.lang.StringBuilder

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

  editText.setText(loda())
 }

 override fun onDestroy() {
  super.onDestroy()
  save(editText.text.toString())
 }

 private fun save(inputText:String){
  try {
   //此函式接收兩個引數,分別是檔名和開啟模式
   //函式的預設儲存路徑是/data/data/<package name>/file
   //開啟模式主要是MODE_APPEND(追加)和MODE_PRIVATE(覆蓋)
   val output = openFileOutput("data",Context.MODE_PRIVATE)
   val write = BufferedWriter(OutputStreamWriter(output))
   write.use {
    it.write(inputText)
   }
  }catch (e:IOException){
   e.printStackTrace()
  }
 }

 private fun loda():String{
  val result = StringBuilder()
  try {
   val input = openFileInput("data")
   val reader = BufferedReader(InputStreamReader(input))
   reader.use {
    reader.forEachLine {
     result.append(it)
    }
   }
  }catch (e : IOException){
   e.printStackTrace()
  }
  return result.toString()
 }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 <EditText
  android:id="@+id/editText"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:hint="請輸入一段話"/>

</LinearLayout>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。