1. 程式人生 > >Android持久化資料儲存——File、SharedPreferences、SQLite

Android持久化資料儲存——File、SharedPreferences、SQLite

package com.example.mjon.myapplication; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.EditText; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import
java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class MainActivity extends AppCompatActivity { private EditText ed; private FileOutputStream fileOutputStream; private BufferedWriter bufferedWriter; private FileInputStream fileInputStream
; private BufferedReader bufferedReader; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed = (EditText) findViewById(R.id.ed); } /** * 讀入資料 */ @Override protected void onResume() { super
.onResume(); try { StringBuilder stringBuilder = new StringBuilder(); //用於存放取出的資料 fileInputStream = openFileInput("data"); //通過openFileInput()開啟檔案,返回一個檔案輸入流物件 bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream)); //藉助返回的檔案輸入流物件構建讀入流物件,接著構建出讀取緩衝物件 String temp = ""; //用於臨時儲存每行讀出的資料 while ((temp = bufferedReader.readLine()) != null) { //每讀取一行,追加儲存一次,直到讀取到末尾 stringBuilder.append(temp); } ed.setText(stringBuilder.toString()); } catch (Exception e) { e.printStackTrace(); } finally { try { if (bufferedReader != null) { //如果讀取緩衝物件有資料則關閉 bufferedReader.close(); } } catch (Exception e) { e.printStackTrace(); } } } /** * 寫出資料 */ @Override protected void onDestroy() { super.onDestroy(); String temp = ed.getText().toString(); try { fileOutputStream = openFileOutput("data", Context.MODE_PRIVATE); //通過openFileOutput()開啟或建立檔案,返回檔案輸出流物件 bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream)); //藉助返回的檔案輸出流物件構建出寫出流物件,再借助寫出流物件構建出寫出緩衝物件 bufferedWriter.write(temp); //通過寫出緩衝物件寫出資料 } catch (Exception e) { e.printStackTrace(); } finally { try { if (bufferedWriter != null) { //如果寫出緩衝流中有資料則關閉 bufferedWriter.close(); } } catch (Exception e) { e.printStackTrace(); } } } }