将数据存储到文件

Context 类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中。

这个方法接收两个参数,第一个参数是文件创建时使用的名称,注意这里指定的文件名不可以包含路径,因为所有文件都是默认储存到 /data/data/<包名>/files/ 目录下的。

第二个参数是文件的操作模式,主要有两种模式可选,MODE_PRIVATE(覆盖原文) 和 MODE_APPEND(追加内容) 。

openFileOutput() 方法返回的是一个 FileOutputStream 对象,得到这个对象之后就可以使用 Java 流的方式将数据写入到文件中了。

将一段文本内容保存到文件中:

public void save() {
        String data = "Data to save";
        FileOutputStream out = null;
        BufferedWriter writer = null;
        try {
            //设置文件名称,以及存储方式
            out = openFileOutput("data", Context.MODE_PRIVATE);
            //创建一个OutputStreamWriter对象,传入BufferedWriter的构造器中
            writer = new BufferedWriter(new OutputStreamWriter(out));
            //向文件中写入数据
            writer.write(data);
            
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

去复习一下Java的IO流,理解上面代码将变得轻而易举

运行程序,借助Android Studio 的 Android Device Monitor 查看该文件:

文件路径:/data/data/<包名>/files/

Android保存文件到指定目录 android保存数据到文件_数据存储

导出 data 文件,查看内容:

Android保存文件到指定目录 android保存数据到文件_Android保存文件到指定目录_02