Android的五中数据存储方式

2016-11-04  本文已影响76人  带着bug看世界

1. SharedPreference:通过键值对形式保存简单的私有数据

类似于Java中的Properties类
保存的也是key = value,是以xml文档格式保存。

//获得SharedPreferences的实例  
shared = getSharedPreferences(文件名不需要后缀,文件的创建模式);  
//文件的创建模式  
Context.MODE_APPEDN(追加)  
Context.MODE_PRIVATE(私有)  
Context.MODE_WORLD_READABLE(公有可读)  
Context.MODE_WORLD_WRITEABLE(公有可写)  
//获得可以修改的对象Editor  
editor = share.edit();  
editor.putXXX(key, value);  
//提交执行,写入文档  
editor.commit(); 

查看文件
-> window -> preference -> showView -> file Explorer

路径:/data/data/[your package name]/shared_prefs/

//得到写入而能当的内容  
shared.getXXX(key, 默认值);  
shared.getAll();//返回的是一个Map<String, ?>  
StringBuffer sb = new StringBuffer();  
sb.append("name = ")  
   .append(shared.getString("name", null)  
   .append("\r\n")  
   .append("password = ")  
   .append(shared.getString("password", null);  
editText.setText(sb); 

2. 文件存储:以文件的形式存储数据,内部存储——保存私有数据,外部存储——保存公有数据

(1)内部存储

os = openFileOutput(文件名,文件创建模式同上);  
is = opFileInput(文件名);  
//文件保存的位置:/data/data/your package mame/files/  
//获取路径        
File dir = Context.getFilesDir();  
File file = dir + “//” + FILE_NAME;  
//读取数据时应该判断文件是否存在。  
//这两种方式都是要占据项目的空间,使得系统运行时会出现空间不足的问题。 

(2)外部(SD卡)存储

//先判断SDCard是否存在file explorer ./mnt/sdcard/  
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
    //获得SDCard的根目录  
    String filePath = Environment.getExternalStorageDirectory() + File.separator + "b103" + File.separator + "test.txt";  
}

<span style="color: #ff0000;">配置文件中加权限</span>

<uses-permission  android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission  android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  

其他操作与普通的JAVA的IO操作没有区别。

3. SQLite数据库:把结构化的数据保存在一个私有的数据库中

4. 网络存储:把数据保存在网络上开发者自己的服务器中

5. XML存储:通过XML文件存储数据

也相当于文件存储的一种形式。

上一篇 下一篇

猜你喜欢

热点阅读