Android数据存储初识

数据存储
1.SharedPreferences共享数据存储
文件的路径:/data/data/工程目录/share_prefes
一般用来存储简单的配置信息,如用户名密码,程序的默认设置信息等,数据是以类似map的键值对形式xml文件存储,不同的是,值只能为基本数据类型,如:boolean,int,String,float,long
有2种方法可获取SharedPreferences对象
getSharedPreferences(String name,int mode)
这个方法允许定义多个属性文件,只需要给这些属性文件设定不同的名字(第一个参数)即可。
getPreferences(String name,int mode)
如果程序中只需要一个属性文件,那么可以选择这个方法。由于只有唯一的属性文件,因此不需给属性文件命名。
方法第一个参数为属性文件名,第二个参数mode指定文件的访问模式

2.文件存储
a:内部存储[files][cache][assets][raw][xml(会压缩变成2进制)]
--files--
文件的路径:/data/data/工程目录/files
与java中I/O流完全一样
openFileInput(String name);
--cache--
文件的路径:/data/data/工程目录/cache
缓存文件夹,当物理空间不够时,系统会自动删除里面的文件
getCacheDir()
--assets--
只读文件,文件名称有限制【数字不能开头,只能使用java变量名的命名规则】
getAssets()
--raw--
文件任意,只读,不允许多级目录,命名遵守java命名规则,会生成一个R.raw.文件名 地址
getResources().openRawResource(R.raw.文件名);
--xml--
存储xml文件,只读,文件会压缩,生成R.xml.文件名 地址
返回的不是文件流,而是直接解析xml文件的对象
getResources().getXml(R.xml.文件名);
b:外部存储[sdcard]
使用SD卡进行文件存储需先判断SD卡是否可用

3.sqlite数据库存储
数据库默认路径:/data/data/工程目/databases
优点:
a. 效率出众,尤其是在数据量庞大的情况下
b. 十分适合存储结构化数据
c. 方便在不同的Activity,甚至不同的应用之间传递数据

4.ContentProvider内容提供者
对外进行数据共享,android跨应用共享数据的唯一方式
它将各种数据映射成数据表,对外提供一个用于访问数据表的uri,应用程序通过ContentResolver对象来访问特定uri对应的数据

5.网络存储

***************************************************
小小总结一下:
数据能用简单方式处理尽量简单
结构化数据用数据库
尽量不创建文件
私密或重要文件用内部存储,否则外部存储









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值