Android 之 数据存储
在Android操作系统中,提供了5种数据存储方式:SharedPreferences存储,文件存储,SQLite数据库存储,ContentProvider存储和网络存储。
一、SharedPreferences
用于保存配置信息。所有的信息都是按照"key=value"的形式进行保存,只能保存基本数据类型的信息,如:字符串、整形、布尔型等。
注意:在使用SharedPreferences存储数据时,不需要指定文件后缀,后缀自动设置为.xml。
SharedPreferences preferences = getSharedPreferences(fileName,mode);
preferences.getXXX(.......); //直接读取数据
//需要写入数据
Editor editor = preferences.edit();
editor.putXXX(....);
editor.commit(); //提交
二、文件存储
SharedPreferences只能存储一些简单数据类型的数据,可以通过文件存储来弥补SharedPreferences存储的不足。
对于文件的存储操作,在Android中有两种形式:
1.直接利用Activity提供的文件操作方法。此类操作的所有文件路径只能是"\data\data\<package_name>\files\文件名称"。


2.利用Java IO流执行操作。此类操作的文件可以是任意路径(包括sdcard)下,但是要为其操作授权。
写文件通常使用 处理流PrintStream+节点流FileOutputStream
读文件通常使用 Scanner+节点流FileInputStream
这种情况下,主要是向sdcard中写入信息。(请参考"android 之 sdcard操作")
3.操作资源文件
这里说的资源文件,是指res目录下的资源文件,这些资源文件的id会在R.java文件中。
读取这些资源文件,需要android.content.res.Resources类,通过Context实例的getResources()方法获取。
注意:txt文件要放在raw文件夹下。

三、SQLite数据库
在Android系统中,进行SQLite数据库操作,主要涉及以下类和接口:

SQLiteDatabase类实例代表了一个SQLite数据库对象以及相关的数据库操作。
在实际开发中,一般不用创建SQLiteDatabase对象,而是使用辅助类SQLiteOpenHelper。
SQLiteOpenHelper是一个抽象类,实际开发时,需要继承该类,并实现其中的相关方法,如下所示:



总结:使用SQLite数据库,步骤如下:
1.创建SQLiteOpenHelper子类,并实现其中的抽象方法,在onCreate方法中,主要完成数据库初始化的建表工作。
2.通过创建SQLiteOpenHelper子类的实例,获取数据库对象(通过getReadableDatabase()或getWriteableDatabase())
3.通过数据库对象实例,执行数据库操作,主要是execSQL()和rawQuery()两个方法。
4.如果多次访问数据,要使用事务
db.beginTransaction(); //开始事务
db.setTransactionSuccessful(); //提交更新或回滚事务
db.endTransaction(); //结束事务
5.关闭数据库
close(); //很重要
在Android中,使用android.database.Cursor类来封装查询的结果集。使用db.rawQuery()返回一个Cursor对象。
Cursor对象中,列的下标从0开始。

四、ContentProvider
ContentProvider类的作用是不同应用程序之间进行数据交换。

ContentProvider操作数据时,采用Uri的形式进行数据交换。


在实际应用中,Android系统提供了许多ContentProvider,这些ContentProvider在android.provider包中有说明。
ContentProvider是数据的提供接口,在实际使用时,需要通过ContentResolver来访问ContentProvider提供的数据。
通过Context对象实例的getContentResolver()来获取ContentResolver。
Android 之 数据存储的更多相关文章
- Android中数据存储(一)
国庆没有给国家添堵,没有勾搭妹子,乖乖的写着自己的博客..... 本文将为大家介绍Android中数据存储的五种方式,数据存储可是非常重要的知识哦. 一,文件存储数据 ①在ROM存储数据 关于在ROM ...
- Android本地数据存储复习
Android本地数据存储复习 Android无论是应用层还是系统层都需要在本地保存一些数据,尤其在应用层中使用的就更为普遍,大体有这么几种:SharedPreference,file,sqlite数 ...
- android学习笔记45——android的数据存储和IO
android的数据存储和IO SharedPreferences与Editor简介 SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此其保存的数据主要是简单的类型的ke ...
- Android实现数据存储技术
转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...
- android中数据存储
android中数据存储 Android 中存储数据的方式有五种:SQLite数据库.文件存储.内容提供者.网络.SharedPreferences(Key----value)五种存储方式. ...
- Android中数据存储(四)——ContentProvider存储数据
目录(?)[+] 当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式 Android 的数据存储有5种方 ...
- Android中数据存储(三)——SQLite数据库存储数据
当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式 Android 的数据存储有5种方式: 1. Share ...
- 关于Android开发数据存储的方式(一)
关于Android开发数据存储方式(一) 在厦门做Android开发也有两个月了,快情人节了.我还在弄代码. 在微信平台上开发自己的APP,用到了数据存储的知识,如今总结一下: 整体的来讲.数据存储方 ...
- Android本地数据存储: ASimpleCache
一:前言 在上一篇博客Android本地数据存储: Reservoir 博客中,我提到,除了Reservoir库,还可以采用ASimpleCache开源库,来实现本地数据存储.昨天并没有仔细的对比Re ...
- Android之数据存储的五种方法
1.Android数据存储的五种方法 (1)SharedPreferences数据存储 详情介绍:http://www.cnblogs.com/zhangmiao14/p/6201900.html 优 ...
随机推荐
- 【Oracle 数据迁移】环境oracle 11gR2,exp无法导出空表的表结构【转载】
今天做数据迁移,但是发现有些空表无法exp,后来找到问题所在. [原文]:http://www.cnblogs.com/wenlong/p/3684230.html 11GR2中有个新特性,当表无数据 ...
- js获取字符串的字节长度
占用3个字节的范围 U+2E80 - U+2EF3 : 0xE2 0xBA 0x80 - 0xE2 0xBB 0xB3 共 115 个 U+2F00 - U+2FD5 : 0xE2 0xBC 0x80 ...
- 在Linux下运行C语言程序
市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图).CentOS.Deepin(深度Linux).本教 ...
- Java.util.concurrent包学习(一) BlockingQueue接口
JDK1.7 BlockingQueue<E>接口 (extends Queue<E>) 所有父接口:Collection<E>,Iterable<E> ...
- iOS开发 判断用户是否开启了热点
- (BOOL)achiveUserHotspotOpening { return [UIApplication sharedApplication].statusBarFrame.size.heig ...
- JSON和JSONP区别和联系
由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯 ...
- JSON对象如何转化为字符串?
序列化 定义 指将 JavaScript 值转化为 JSON 字符串的过程. JSON.stringify() 能够将 JavaScript 值转换成 JSON 字符串.JSON.stringify( ...
- JavaScript高阶函数的应用
定义 高阶函数是指至少满足下列条件之一的函数: 函数可以作为参数被传递: 函数可以作为返回值输出. JavaScript语言中的函数显然满足高阶函数的条件,在实际开发中,无论是将函数当作参数传递,还是 ...
- 在centos6.5中安装jdk
一.下载jdk 下载地址 www.oracle.com,我这次安装的jdk是1.6版本的,以.bin结尾的,名称为 jdk-6u45-linux-i586.bin 二.安装步骤 1.在 /usr目录下 ...
- 【bzoj1053】反素数
[bzoj1053]反素数 题意 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例 ...