您的位置:首页 > 移动开发 > Android开发

Android数据存储与IO详解

2016-08-01 22:23 405 查看

SharedPreferences存储

SharedPreference简介:

当存储一些数据简单,而且格式简单,我们一般使用sharedPreference来存取数据。它的类型类似与key-value键值对的形式。 SharedPreference接口主要负责读取应用程序的Preference数据, 它提供了如下方法来访问SharedPreference的key-value数据。



SharedPreferences是一个接口并没有提供写入数据的能力,而是通过调用SharedPreferences的edit()方法获取Editor对象,Editor对象提供了如下方法来向SharedPreferences对象中写入数据:



SharedPreferences本身是一个接口,无法创建实例,只能通过Context提供的getSharedPreference(String name,int mode)来获取实例。

如:

SharedPreferences  sp = getSharedPreferences("XX" ,MODE_WORLD_READABLE)  ;
SharedPreferences.Editor  editor = sp.edit();
//这样就创建好一个SharedPreferences对象。


这里的mode有以下几个值:

Context.MODE_PRIVATE:指定该SharedPreferences只能被本程序读写。

Context.MODE_WORLD_READABLE:指定该SharedPreferences能被其他应用程序读,不能写。

Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences能被其他应用程序读,写。

File存储

文件存储是android中最基本的一种数据存储方式,它不对存储的内容进行任何格式的处理。在java中有一套体系用于读取文件,其中有FileInputStream和FileOutputStream,有这些IO流,我们就可以很方便的访问磁盘的文件了。其实在android中也同样支持。

openFileOutput和openFileInput

Context中提供了两个方法:

FileInputStream openFileInput(String name): 打开应用程序的数据文件夹下name对应的输入流。

这个比较简单只有一个参数,

FileOutputStream openFileOutput(String name,int mode ): 打开应用程序的数据文件夹下name对应的输出流。这个方法中有两个参数,其中mode主要有两种模式可选:

MODE_PRIVATE:一般是默认的操作模式。表示当指定同样的文件名时,所写入的数据会覆盖原来的数据。

MODE_APPEND:如果原文件已存在,则在其后追加内容,不存在就创建。

MODE_WORLD_READABLE:指定该文件的内容能被其他应用程序读取。

MODE_WORLD_WRITEABLE:指定该文件能被其他应用程序读,写。

后两种会容易引起安全漏洞,所以我们一般不会去这两种。

SQLite数据库存储

SQLite是一款轻量级的关系型数据库,是Android内置的数据库,功能也比较强大。我们如果有复杂的数据存储的话一般都用这个数据库来存储数据。

Android提供了SQLiteDatabase代表数据库,要想使用数据库,就的先创建数据库SQLiteDataBase对象,为了更好的管理数据库,Android专门提供了一个SQLiteOpenHelper帮助类,这样就可以很轻松的创建和升级数据库了。通过SQLiteOpenHelper的子类getReadableDatabase()和getWriteableDatabase()方法来打开数据库。

这两个方法有什么区别呢:

它们都可以创建或者打开一个数据库,如果数据库已经存在就直接打开,否则就再创建一个数据库。并返回一个可对数据库进行读写操作的对象。不同的是:当数据库不可写入的时候,getReadableDatabase()方法返回的是一个以只读的方式打开数据库,而getWriteableDatabase()会出现异常。

SQLiteOpenHelper有以下常用的方法:

SQLiteDatabase getReadableDatabase():以读写的方式打开数据库。

SQLiteDatabase getWriteableDatabase():以写的方式打开数据库。

void oncreate():第一次创建数据库的时候创建。

void onUpgrade():当数据库版本更新的时候调用该方法。

void close():关闭数据库。

会在下一篇叙述。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐