实验七 数据缓存写入SD卡

一、实验目的

(1)掌握数据存储方式

(2)掌握数据写入SD卡的方法

(3)掌握从SD卡中读取数据的方法

二、实验内容

    做一个仅包含一个EditText的小应用,向EditText中输入数据,返回主界面,再次打开应用,还原刚输入的数据。

三、实验结果图

实验七 数据缓存写入SD卡_第1张图片实验七 数据缓存写入SD卡_第2张图片

我们打开DDMS的File Explorer查看一下:

实验七 数据缓存写入SD卡_第3张图片

将data文件导出到电脑查看:  

实验七 数据缓存写入SD卡_第4张图片

四、实验代码

MainActivity:

package com.test7.content;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;

import com.test8.context.R;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.text.TextUtils;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	private EditText edit;
	String filename, content;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		edit = (EditText) findViewById(R.id.edit);
		String inputText = load();
		if (!TextUtils.isEmpty(inputText)) {
			edit.setText(inputText);
			edit.setSelection(inputText.length());
			Toast.makeText(this, "还原成功", Toast.LENGTH_SHORT).show();
		}
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		String inputText = edit.getText().toString();
		try {
			saveToSDCard("data", inputText);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void saveToSDCard(String filename, String content) throws Exception {
		File file = new File(Environment.getExternalStorageDirectory(),
				filename);
		OutputStream out = new FileOutputStream(file);
		out.write(content.getBytes());
		out.close();
	}

	public String load() {
		String result = null;
		try {
			File file = new File(Environment.getExternalStorageDirectory(),"data");
			@SuppressWarnings("resource")
			FileInputStream input = new FileInputStream(file);
			byte[] bt = new byte[input.available()];
			input.read(bt);
			result = new String(bt);
			}
		catch (Exception e) {
			e.printStackTrace();
		} 
		return result.toString();
	}	
}
activity_main.xml:


    



五、存在的问题

这个实验只用了一种存储方式,还有一些其他的方法,可参考http://blog.csdn.net/mad1989/article/details/37568667。


PS:这是一篇实验报告,各种方法可查上述链接

你可能感兴趣的:(实验课)