android —— 数据存储方式
(1)调用Context对象的getSharedPreferences()方法,可被同一应用程序下的其他组件共享
(2)调用Activity对象的getPreferences()方法,只能在该Activity中使用
操作模式:
(1)Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
(2)Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
(3)Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
(4)Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入
通过getSharedPreferences中editor来存值,这个editor存取方式类似map,一样采用key——value形式存值,通过key取value
适用范围:常用于存储大数量的数据
Context.openFileOutput("filename", mode);写入文件
第一个参数:
文件的名称,不能包含路径分隔符“/”,如果文件不存在,Android会自动创建
创建的文件默认保存在/data/data/<package name>/files目录下
第二个参数:
Context.MODE_PRIVATE //文件只能被本应用使用,新建模式
Context.MODE_APPEND //追加模式
Context.MODE_WORLD_READABLE //可以被其他应用读取
Context.MODE_WORLD_WRITEABLE //可以被其他应用写入
Context.openFileInput("filename");读取文件
读文件
FileInputStream fis = this.openFileInput("message.txt");
byte[] b= new byte[1024];
int length = 0;
StringBuilder sb = new StringBuilder();
while ((length = fis.read(b)) != -1) {
sb.append(new String(b, 0, length ));
}
写文件
FileOutputStream fos = openFileOutput("message.txt",MODE_APPEND);//MODE_APPEND为追加
fos.write(msg.getByte())//msg为你要存的值
ContentProvider为存储和获取数据提供了统一的接口。使用ContentProvider可以在不同的应用程序之间共享数据。
就是将一个app里的数据暴露出来,提供给其他app
使用
①:定义一个COTENT_URI常量
一个查询URI是由"scheme"、"authority"、"path"组成,还有一个可选择的"id"部分,带有id的URI对应了表格中的某一行。"scheme"一般指定为"content";为了各个Provider之间不产生冲突,"authority"推荐使用应用程序的包名
②:定义一个类,继承ContentProvider
③:实现query(),delete(),update(),insert(),onCreate(),getType()方法
④:在AndroidMainfest.xml中申明
<provider
android:name="你的包名"
android:authorities="你的包名" />