实验七 数据缓存写入SD卡

来源:互联网 发布:ios 软件推荐 编辑:程序博客网 时间:2024/05/02 06:46

一、实验目的

(1)掌握数据存储方式

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

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

二、实验内容

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

三、实验结果图


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


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


四、实验代码

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;@Overrideprotected 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();}}@Overrideprotected void onDestroy() {super.onDestroy();String inputText = edit.getText().toString();try {saveToSDCard("data", inputText);} catch (Exception e) {// TODO Auto-generated catch blocke.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:
<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="@string/hint"        /></LinearLayout>
五、存在的问题

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


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

0 0