天天看點

将資料存儲到檔案中

學習目的:在EditText中,界面上的文本輸入框輸入内容之後,再按下Back鍵,這時輸入的内容肯定就已經丢失了,因為它隻是瞬時資料,在活動被銷毀後就會被回收。而這裡我們要做的,就是在資料被回收之前,将它存儲到檔案當中。

一:運作效果圖

将資料存儲到檔案中
将資料存儲到檔案中
将資料存儲到檔案中

二:MainActivity代碼如下:

package com.example.FilePersistenceTest;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import com.example.sharefiletest.R;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.widget.EditText;

public class MainActivity extends Activity {
	
	private EditText edit;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		edit = (EditText) findViewById(R.id.edit);
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		String inputText = edit.getText().toString();
		save(inputText);
	}

	public void save(String inputText) {
		FileOutputStream out = null;
		BufferedWriter writer = null;
		try {
			out = openFileOutput("data", Context.MODE_PRIVATE);
			writer = new BufferedWriter(new OutputStreamWriter(out));
			writer.write(inputText);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (writer != null) {
					writer.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}
           

三:activity_main.xml代碼如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <EditText 
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Type something here"
        />

</LinearLayout>
           

四:重要的步驟

1.建立一個FilePersistenceTest項目,并修改代碼如activity_main.xml代碼;

2.修改MainActivity中的代碼如上圖代碼,使瞬時資料在資料被回收之前,将它存儲到檔案當中;

3.重新運作一下程式,并在Editext中輸入一些内容,如圖一所示;

4.按下Back鍵關閉程式,這時輸入的文本已經被存儲,我們借助DDMS的File Explorer來檢視,如圖二;

5.導出檔案并打開,在EditText中輸入的内容确實已經成功儲存到檔案中了,如圖三。

上一篇: hzp