一、数据存储方式
Android中的数据存储方式有五种,分别是文件存储、SharedPreferences、SQLite数据库、ContentProvider以及网络存储。

文件存储简介
文件存储是Android中最基本的一种数据存储方式,它与Java中的文件存储类似,都是通过I/O流的形式把数据原封不动的存储到文档中。
Android中的文件存储分为内部存储和外部存储。

通过一个存储用户信息的案例来学习。

布局文件如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textSize="20dp"
android:text="请输入您要存储的信息:" />
<EditText
android:id="@+id/et_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"/>
<Button
android:id="@+id/btn_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/et_info"
android:layout_below="@+id/et_info"
android:onClick="read"
android:text="读取信息" />
<Button
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/et_info"
android:onClick="save"
android:text="保存信息" />
</RelativeLayout>
程序文件如下:
public void save(View view) {
String saveinfo = et_info.getText().toString().trim();
FileOutputStream fos; //写入文件的流对象
try {
String sDcString = android.os.Environment.getExternalStorageState();
//如果当前系统有sdcard存在
if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) {
// 取得sdcard文件路径
//fos = openFileOutput("data.txt", Context.MODE_PRIVATE);
File file = new File(Environment.getExternalStorageDirectory(),
"data.txt");
fos = new FileOutputStream(file);
fos.write(saveinfo.getBytes());
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this, "数据保存成功", 0).show();
}
public void read(View view) {
String content = "";
try {
FileInputStream fis = openFileInput("data.txt");
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
content = new String(buffer);
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this, "保存的数据是:" + content, 0)
.show();
}

