Android 数据存储五种方式使用与总结

1. SharedPreference类基于XML文件存储的“key-value”键值对数据。通常用来存储程序的一些配置信息。对于内存资源占用比较好。 

1)通过以下两种方法获取SharedPreferences对象(通过Context):

①getSharedPreferences (String name, int mode)

当我们有多个SharedPreferences的时候,根据第一个参数name获得相应的SharedPreferences对象。

②getPreferences (int mode)

如果你的Activity中只需要一个SharedPreferences的时候使用。

这里的mode有四个选项:

A.Context.MODE_PRIVATE

SharedPreferences数据只能被本应用程序读、写。

B.Context.MODE_WORLD_READABLE

SharedPreferences数据能被其他应用程序读,但不能写。

C.Context.MODE_WORLD_WRITEABLE

SharedPreferences数据能被其他应用程序读和写。

D.Context.MODE_MULTI_PROCESS

2)向Shared Preferences中写入值 
首先要通过 SharedPreferences.Editor获取到Editor对象

然后通过Editor的putBoolean() 或 putString()等方法存入值;

最后调用Editor的commit()方法提交

同时Edit还有两个常用的方法:

editor.remove(String key) :下一次commit的时候会移除key对应的键值对

editor.clear():移除所有键值对

3)Shared Preferences的优缺点:很轻量级的应用,方便简洁。但存储数据类型比较单一(只有基本数据类型),无法进行条件查询。

1. 文件数据储存

1)创建和写入一个内部存储的私有文件:

①调用Context的openFileOutput()函数,填入文件名和操作模式,它会返回一个FileOutputStream对象。

②通过FileOutputStream对象的write()函数写入数据。

③FileOutputStream对象的close ()函数关闭流。

 Android 数据存储五种方式使用与总结

2)读取一个内部存储的私有文件:

① 调用openFileInput( ),参数中填入文件名,会返回一个FileInputStream对象。

② 使用流对象的 read()方法读取字节

③ 调用流的close()方法关闭流

Android 数据存储五种方式使用与总结

其他一些经常用到的方法:


getFilesDir():得到内存储文件的绝对路径

getDir():在内存储空间中创建或打开一个已经存在的目录

deleteFile():删除保存在内部存储的文件。  

fileList():返回当前由应用程序保存的文件的数组

1. SQLite储存特性:

1)ACID事务:指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)。

2)零配置 – 无需安装和管理配置  

3)储存在单一磁盘文件中的一个完整的数据库 

4)数据库文件可以在不同字节顺序的机器间*的共享

5)支持数据库大小至2TB  

6)足够小, 大致3万行C代码, 250K  

7)比一些流行的数据库在大部分普通数据库操作要快  

8)简单, 轻松的API  

使用:

(1)创建数据库

Android 数据存储五种方式使用与总结

继承SQLiteOpenHelper之后就拥有了以下两个方法:

getReadableDatabase()  创建或者打开一个查询数据库

getWritableDatabase() 创建或者打开一个可写数据库

DatabaseHelper database = new DatabaseHelper(context);

SQLiteDatabase db = null;

db = database.getWritableDatabase();

上面这段代码会返回一个 SQLiteDatabase 类的实例,使用这个对象,你就可以查询或者修改数据库。

2)创建表和索引

Android 数据存储五种方式使用与总结

3)增删改查

Android 数据存储五种方式使用与总结

Android 数据存储五种方式使用与总结

4.ContentProvider存储数据

以结构化方式存放的数据,以相对安全的方式封装数据(表)并且提供简易的处理机制和统一的访问接口供其他程序调用。ContentProvider它也只是一个中间人,真正操作的数据源可能是数据库,也可以是文件、xml或网络等其他存储方式。

1)ContentProvider的主要方法

public boolean onCreate()

ContentProvider创建后或打开系统后其它应用第一次访问该ContentProvider时调用。

public Uri insert(Uri uri, ContentValues values)

外部应用向ContentProvider中添加数据。

public int delete(Uri uri, String selection, String[] selectionArgs)

外部应用从ContentProvider删除数据。

public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs):

外部应用更新ContentProvider中的数据。

public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 

供外部应用从ContentProvider中获取数据。 

public String getType(Uri uri)

该方法用于返回当前Url所代表数据的MIME类型。

2)ContentResolver

Android 数据存储五种方式使用与总结

5.网络存储。