您的位置:首页 > 移动开发 > Android开发

android数据存储中的文件存储学习记录

2015-07-25 20:55 651 查看
Andoid系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储,SharedPreference存储以及SQLite数据库存。

储。此外还可以将数据保存在手机的SD卡中,但是安全性较弱。

文件存储将不对存储的内容进行任何的格式化处理,用于存储一些简单的文本数据或二进制数据。

Context类提供openFileOutput与openFileinput方法,分别返回一个FileOutputstram与Fileinputstream对象。

1、openFileOutput("文件名",操作模式)

文件名不能包含路径,所有文件默认存储到/data/data<package name>/file/目录下。

在eclipse中通过DDMS视图中的File Explorer进入目录查看。

主要操作模式:

MODE_PRIVATE  默认模式,内容覆盖原内容。

MODE_APPEND   模式若文件不存在则创建新文件,已存在则追加内容。

MODE_WORLD_READABLE,MODE_WOELD_WRITEABLE模式在android4.2版本已被废弃。

简单demo如下:
//保存字符串"Hello World"到data文件
public void saveData()
{
FileOutputStream out=null;
OutputStreamWriter osw=null;
BufferedWriter writer=null;

String content="Hello World";

try {
out=openFileOutput("data", Context.MODE_PRIVATE);
osw=new OutputStreamWriter(out);
writer=new BufferedWriter(osw);
writer.write(content);

} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(writer!=null)
{
writer.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}


2、openFileInput("文件名")

从/data/data<package name>/file/目录下通过文件名加载文件。

简单demo如下:
//得到从data文件中读取的字符串
public String loadData()
{
FileInputStream in =null;
InputStreamReader isr=null;
BufferedReader reader =null;

String line;
StringBuilder build = new StringBuilder();

try {
in = openFileInput("data");
isr = new InputStreamReader(in);
reader = new BufferedReader(isr);

while((line=reader.readLine())!=null)
{
build.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(reader!=null)
{
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return build.toString();
}

总结文件存储核心技术其实就是Context类中提供的openFileOutput与openFileinput方法,然后就是使用java的各种流来进行读写操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息