Android持久化技術之檔案的讀取與寫入例項詳解

Android持久化技術之檔案的讀取與寫入例項詳解
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

本文例項分析了Android持久化技術之檔案的讀取與寫入操作。分享給大家供大家參考,具體如下:

1、檔案儲存

(1)在Android的持久化技術中,檔案儲存是最基本的一種資料儲存方式。
(2)對儲存的內容部做任何處理,原樣儲存到檔案中。
(3)Context提供了檔案寫入與讀取的方法,openFileOutput:寫入到檔案;openFileInput:從檔案中讀取。
(4)檔案寫入時模式有多種:比如是覆蓋寫入還是追加寫入等。
(5)寫入的檔案預設儲存在/data/data/報名/files/目錄下。

2、示例

在這裡設定一個簡單的應用場景:當在文字框中輸入內容時,當下次再進入時顯示上次輸入的內容。

(1)activity_main.xml檔案


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@ id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Account:" />
<EditText
android:id="@ id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
</EditText>
</LinearLayout>

在該佈局中,有一TextView和一輸入框。

(2)MainActivity.java


package com.example.testfilestore;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.widget.EditText;
/**
* 檔案儲存:寫入與讀取
* @author yy
*
*/
public class MainActivity extends Activity {
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取editText物件
editText = (EditText) findViewById(R.id.editText1);
//首先載入上次輸入的內容
String inputContent = readFromFile();
if(!TextUtils.isEmpty(inputContent)){
//如果上次輸入的內容不為空,則載入進來
editText.setText(inputContent);
//設定游標位置,使之位於文字末尾,預設是在文字頭部
editText.setSelection(inputContent.length());
}
}
/**
* 當活動銷燬時,儲存輸入的內容
*/
@Override
protected void onDestroy() {
super.onDestroy();
//獲取輸入的內容
String data = editText.getText().toString();
//寫入檔案
writeToFile(data);
}
/**
* 輸入的內容寫入檔案
*/
public void writeToFile(String data){
FileOutputStream fileOutputStream = null;
BufferedWriter bufferedWriter = null;
try {
//Context中的方法,用於儲存資料
//第一個引數是檔名
//第二個引數是寫入模式,表示覆蓋寫入,如果原來有內容,則會覆蓋
fileOutputStream = openFileOutput("first",Context.MODE_PRIVATE);
bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
bufferedWriter.write(data);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
//關閉流
try {
if(bufferedWriter!=null){
bufferedWriter.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 從檔案中讀取資料
* @return
*/
public String readFromFile(){
FileInputStream fileInputStream = null;
BufferedReader bufferedReader = null;
StringBuffer stringBuffer = new StringBuffer();
try {
fileInputStream = openFileInput("first");
bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
String line = "";
while((line = bufferedReader.readLine())!=null){
stringBuffer.append(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
//關閉流
try {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
//返回
return stringBuffer.toString();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

在該類中,提供了兩個方法:輸入內容寫入檔案以及從檔案中載入上次輸入的內容。在這兩個方法中分別呼叫Context提供的方法openFileOutput和openFileInput。

當寫入時只有檔名,當然可以新增字尾,沒有路徑,是預設儲存的。

檔案的儲存時在活動銷燬時進行的。

檔案內容的載入是在活動建立時進行的。

3、結果

當再次進入時,會載入上次輸入的內容,並且游標位於末尾。

希望本文所述對大家Android程式設計有所幫助。

您可能感興趣的文章:

Android學習筆記-儲存檔案(Saving Files)android開發教程之獲取power_profile.xml檔案的方法(android執行時能耗值)Android程式設計實現檔案瀏覽功能的方法【類似於FileDialog的功能】Android檔案選擇器ExFilePicker的使用方法Android第三方檔案選擇器aFileChooser使用方法詳解Android開發實現Files檔案讀取解析功能示例Android中檔案讀寫(輸入流和輸出流)操作小結Android程式設計之檔案的讀寫例項詳解Android 讀寫檔案方法彙總Android程式設計之檔案讀寫操作與技巧總結【經典收藏】Android程式設計中File檔案常見儲存與讀取操作demo示例

相關文章

Android 開發 最新文章