文档介绍:Android课堂
主讲人:蒋绪金
数据存储:
任何一个应用程序其实说白了就是不停的和数据打交道,如聊QQ、刷微博、看新闻等。
瞬时数据:就是指那些存储在内存当中,有可能会因为程序关闭或其他原因导致内存被回收而丢失的数据。
数据持久化:就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。
Android系统中主要提供了三种方式用于简单的实现数据持久化功能,
即文件存储、SharedPreferences存储以及数据库存储。
当然,除了这三种方式之外,还可以将数据保存在手机的SD卡中。(此方式容易泄露隐私)
Android课堂
主讲人:蒋绪金
1 文件存储:
文件存储是Android中最基本的一种数据存储方式,
它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的,
因而它比较适合用于存储一些简单的文本数据或二进制数据。
Android课堂
主讲人:蒋绪金
将数据存储到文件中:
Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中。
这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,
注意这里指定的文件名不可以包含路径,
因为所有的文件都是默认存储到/data/data/<packagename>/files/目录下的。
Android课堂
主讲人:蒋绪金
将数据存储到文件中:
第二个参数是文件的操作模式,主要有两种模式:MODE_PRIVATE和MODE_APPEND。
其中MODE_PRIVATE是默认的操作模式,表示当指定同样的文件名时,所写入的内容将会覆盖原文件中的内容,
而MODE_APPEND则表示如果该文件已存在就往文件里面追加内容,不存在就创建新文件
Android课堂
主讲人:蒋绪金
将数据存储到文件中:
其实文件的操作模式本来还有另外两种,
MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE,
这两种模式表示允许其他的应用程序对我们程序中的文件进行读写操作,
不过由于这两种模式过于危险,很容易引起应用的安全性漏洞,。
openFileOutput()方法返回的是一个FileOutputStream对象,
得到这个对象之后就可以使用Java流的方式将数据写入到文件中了。
以下是一段简单的代码示例,展示了如何将一段文本内容保存到文件中:
Android课堂
主讲人:蒋绪金
将数据存储到文件中:
public void save(){
String data = "Data to be saved";
FileOutputStream out = null;
BufferedWriter writer = null;
try {
out = openFileOutput("data", );
writer = new BufferedWriter(new OutputStreamWriter(out));
(data);
} catch (IOException e) {
();
}finally{
try {
if (writer != null) {
();
}
} catch (IOException e) {
();
}
}
}
Android课堂
主讲人:蒋绪金
将数据存储到文件中:
这里通过openFileOutput()方法能够得到一个FileOutputStream对象,
然后再借助它构建出一个OutputStreamWriter对象,
接着再使用OutputStreamWriter构建出一个BufferedWriter对象,
这样就可以通过BufferedWriter来将文本内容写入到文件中了。
下面我们就编写一个完整的例子,学****一下如何在Android项目中使用文件存储的技术。
首先创建一个DataStorage_File的项目,。
Android课堂
主讲人:蒋绪金
将数据存储到文件中:
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入点儿啥"/>