一、介绍
以文件的形式存储数据信息,默认存储的位置是sdcard。
二、应用场景
存储一些简单的文本数据或者二进制数据。
三、存储步骤
1.判断是否存在外部存储器;
2.通过Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式。具体有以下值可选:
MODE_PRIVATE:
为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可 以使用Context.MODE_APPEND
MODE_APPEND:
模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件,且当前文件可以被其他应用读取;
MODE_WORLD_WRITEABLE:
表示当前文件可以被其他应用写入。
3.写入或者读取文件信息。
四、示例代码
package com.example.storagedemo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
public class FileStorageUtil {
public static String read(Context context) {
try {
FileInputStream inStream = context.openFileInput("message.txt");
byte[] buffer = new byte[1024];
int hasRead = 0;
StringBuilder sb = new StringBuilder();
while ((hasRead = inStream.read(buffer)) != -1) {
sb.append(new String(buffer, 0, hasRead));
}
inStream.close();
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void write(Context context,String msg){
// 步骤1:获取输入值
if(msg == null) return;
try {
// 步骤2:创建一个FileOutputStream对象,MODE_APPEND追加模式
FileOutputStream fos = context.openFileOutput("message.txt",
Context.MODE_APPEND);
// 步骤3:将获取过来的值放入文件
fos.write(msg.getBytes());
// 步骤4:关闭数据流
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
记得添加SdCard访问权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />