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():关闭数据库。
会在下一篇叙述。。。
相关文章推荐
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android数据存储详解
- android 数据存储和访问方式四:ContentProvider(内容提供者、数据共享)详解
- Android的数据存储和IO-SD卡文件浏览器
- Android的数据存储和IO
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- android 之数据存储(IO)
- android 数据存储和访问方式五:网络详解
- android 数据存储和访问方式一:文件详解
- Android 数据存储和IO——SQLite(三)
- Android数据存储之Shared Preferences详解
- [Android数据存储]之SharedPreferences使用详解
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- android学习—数据存储和IO-SharedPreference和Editor
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android 数据存储和IO——SharedPreferences(一)
- Android学习17--Android的数据存储和IO