Context 类中提供了一个 openFileOutput ()方法,可以用于将数据存储到指定的文件中。
这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注
意这里指定的文件名不可以包含路径,因为所有的文件都是默认存储到/data/data/<package
name>/files/ 目 录下 的 。第 二 个 参数 是 文件 的 操作 模 式 ,主 要 有两 种 模式 可 选 ,
MODE_PRIVATE 和 MODE_APPEND。其中 MODE_PRIVATE 是默认的操作模式,表示当指
定同样文件名的时候,所写入的内容将会覆盖原文件中的内容,而 MODE_APPEND 则表示
如果该文件已存在就往文件里面追加内容,不存在就创建新文件。其实文件的操作模式本来
还有另外两种,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE,这两种模
式表示允许其他的应用程序对我们程序中的文件进行读写操作,不过由于这两种模式过于危
使用 Java 流的方式将数据写入到文件中了。以下是一段简单的代码示例,展示了如何将一
String data = "Data to save";
FileOutputStream out = null;
BufferedWriter writer = null;
try {
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
如果你已经比较熟悉 Java 流了,理解上面的代码一定轻而易举吧。这里通过
openFileOutput()方法能够得到一个 FileOutputStream 对象,然后再借助它构建出一个
OutputStreamWriter 对象,接着再使用 OutputStreamWriter 构建出一个 BufferedWriter 对象,
这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注
意这里指定的文件名不可以包含路径,因为所有的文件都是默认存储到/data/data/<package
name>/files/ 目 录下 的 。第 二 个 参数 是 文件 的 操作 模 式 ,主 要 有两 种 模式 可 选 ,
MODE_PRIVATE 和 MODE_APPEND。其中 MODE_PRIVATE 是默认的操作模式,表示当指
定同样文件名的时候,所写入的内容将会覆盖原文件中的内容,而 MODE_APPEND 则表示
如果该文件已存在就往文件里面追加内容,不存在就创建新文件。其实文件的操作模式本来
还有另外两种,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE,这两种模
式表示允许其他的应用程序对我们程序中的文件进行读写操作,不过由于这两种模式过于危
险,很容易引起应用的安全性漏洞,现已在 Android 4.2 版本中被废弃。
使用 Java 流的方式将数据写入到文件中了。以下是一段简单的代码示例,展示了如何将一
段文本内容保存到文件中:
String data = "Data to save";
FileOutputStream out = null;
BufferedWriter writer = null;
try {
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
如果你已经比较熟悉 Java 流了,理解上面的代码一定轻而易举吧。这里通过
openFileOutput()方法能够得到一个 FileOutputStream 对象,然后再借助它构建出一个
OutputStreamWriter 对象,接着再使用 OutputStreamWriter 构建出一个 BufferedWriter 对象,
这样你就可以通过 BufferedWriter 来将文本内容写入到文件中了。
下面一个完整的简单例子能带你学习一下基础的数据存储技术
首先创建一个 FileTest 项目,并修改 activity_main.xml 中的代码,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
an