openFileInput()和 openFileOutput()方法利用java流将数据存储到文件中

这篇博客介绍了如何在Android中利用`openFileInput()`和`openFileOutput()`方法结合Java流进行数据的存储和读取。在`onDestroy()`方法中保存EditText输入内容到名为"data"的文件,通过DDMS的File Explorer验证数据成功保存。同时,展示了如何使用`openFileInput()`读取文件内容回填到EditText,实现数据持久化。
摘要由CSDN通过智能技术生成
     Context 类中提供了一个 openFileOutput ()方法,可以用于将数据存储到指定的文件中。
这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注
意这里指定的文件名不可以包含路径,因为所有的文件都是默认存储到/data/data/<package
name>/files/ 目 录下 的 。第 二 个 参数 是 文件 的 操作 模 式 ,主 要 有两 种 模式 可 选 ,
MODE_PRIVATE 和 MODE_APPEND。其中 MODE_PRIVATE 是默认的操作模式,表示当指
定同样文件名的时候,所写入的内容将会覆盖原文件中的内容,而 MODE_APPEND 则表示
如果该文件已存在就往文件里面追加内容,不存在就创建新文件。其实文件的操作模式本来
还有另外两种,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE,这两种模
式表示允许其他的应用程序对我们程序中的文件进行读写操作,不过由于这两种模式过于危

险,很容易引起应用的安全性漏洞,现已在 Android 4.2 版本中被废弃。


openFileOutput ()方法返回的是一个 FileOutputStream 对象,得到了这个对象之后就可以
使用 Java 流的方式将数据写入到文件中了。以下是一段简单的代码示例,展示了如何将一

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


public void save() {
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值