android-数据持久化存储
1.数据持久化存储
android提供了4种文件存储方式:文件(/data/data/<包名>/files/),SharePreference(/data/data/<包名>/shared prefs/) ,
SQLite数据库(/data/data/<包名>/database/)和Content Provider。
android采用了“java.io.*”库来提供输入输出(I/O)接口,所有文件以流的形式进行读/写。
2.文件存储
在context类下有openFileOutput(String name,int mode),openFileInput(String name)
方法对文件进行写或读。name表示文件的名字,不包括路径,已经默认路径为该应用程序的包下
data/data/<包名>/files/目录下,当文件不存在时,则创建并放在默认的路径下,有FileNotFoundException异常会抛出。
mode的取值为context类的常量值,如下:
MODE_PRIVATE:表示该文件只能被本应用访问
MODE APPEND_: 表示新的内容会添加到原文件内容的后面
MODE_WORLD_READABLE:表示该文件能被所有应用读取
MODE_WORLD_WRITEABLE:表示该文件能被所有应用写入
2.1读取资源文件
android上的应用可以读取资源文件的内容。资源文件必须存储在项目的res/raw/目录下。
Activity可以通过getResources()方法获取Resources类对象。
Resources类提供了openRawResource(int id)方法读取res/raw/目录下的文件,id是指该文件在R.java中生成对应的id值。
将通过InputStream读取流读取的数据放入ByteArrayOutputStream流内。
因为该字节数组输出流的数据被写入一个 byte 数组。
缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()
和 toString()
获取数据。 关闭 ByteArrayOutputStream 无效。
此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException。即可以能够读取任意长度的文件里的内容。
3.SharedPreferences
Preference是一种轻量级的键值存储方式,可以用它来持久保存一些变量的值,这些变量必须是基本数据类型的,
它存储的数据保存在一个xml文件里,该xml文件存储在
/data/data/<包名>/shared prefs/目录下可以通过,
SharedPreferences对preference存储的数据操作,它可以通过Context类的getSharedPreferences(String name,int type)
方法获取唯一一个SharedPreferences对象。同一个应用只有唯一的SharedPreferences对象,其记录文件(xml文件)可以被
同一应用下的不同Activity共享,type有默认值:MODE_PRIVATE。
注意:getSharedPreferences(String name,int type)后将会在
/data/data/<包名>/shared prefs/下以type模式自动创建一个名为“name”的xml文件。
写操作:
SharedPreferencesEditor edit();//由SharedPreferences对象的该方法获取Editor,它负责写操作。
Editor常用方法:
putString (String name,String value);//
clear();//清除键值
remove(String key)
commit();//该方法最后必须有,它执行数据改变确认的工作。
读操作:
SharedPreferences对象的getString(String name,String value);//value为如果没有get到值,则默认返回该值。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。