Android中的数据存储
来源:互联网 发布:php蜘蛛程序 编辑:程序博客网 时间:2024/06/08 08:32
适用范围:保存少量的数据。格式简单:基本类型的值,字符串等。比如配置信息(游戏中是否打开音效,震动效果,得分等)
原理:保存基于XML文件存储的key-value值对数据。
Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写
SharedPreferences.Editor clear():清空SharedPreferences里所有数据
SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
boolean commit(): 当Editor编辑完成后,使用该方法提交修改
二、文件存放数据
适用范围:文件数据的存储
实现:Context提供两个方法来读写文件IO流
FileInputStream fin = openFileInput(String name);
FileOutputStream fout = openFileOutput(String name,int mode);
其中mode的值:
MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
其他重要方法:
getDir(String name , int mode):在应用程序的数据文件夹下获取或者创建name对应的子目录
File getFilesDir():获取该应用程序的数据文件夹得绝对路径
String[] fileList():返回该应用数据文件夹的全部文件 、
三、SQLite存储读取
适用范围:数据库你懂的。这个叫轻量级嵌入式数据库引擎。支持SQL语言,并且只利用很少的内存。适合存储复杂数据。
实现:
SQLiteDatebase类
对于添加、更新和删除来说,我们都可以使用
db.executeSQL(String sql); db.executeSQL(String sql, Object[] bindArgs);//sql语句中使用占位符,然后第二个参数是实际的参数集 其中:sql就是标准数据库语言也有方便的方法:
db.insert(String table, String nullColumnHack, ContentValues values); db.update(String table, Contentvalues values, String whereClause, String whereArgs); db.delete(String table, String whereClause, String whereArgs);
db.rawQuery(String sql, String[] selectionArgs); db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy); db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit); db.query(String distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);
需要使用可详细查询。
我们完成了对数据库的操作后,记得调用SQLiteDatabase的close()方法释放数据库连接。否则容易出现SQLiteException。
通常使用SQLiteOpenHelper 类管理和维护数据库
为了能够更好的管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库操作类,然后以这个类为基础,再封装我们的业务逻辑方法。
SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。
构造方法,其中
context 程序上下文环境 即:XXXActivity.this;
name :数据库名字;
factory:游标工厂,默认为null,即为使用默认工厂;
version 数据库版本号
onCreate(SQLiteDatabase db)创建数据库时调用onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)版本更新时调用getReadableDatabase()创建或打开一个只读数据库getWritableDatabase()创建或打开一个读写数据库PS:
Android sqlite3数据库管理工具
Android SDK的tools目录下提供了一个sqlite3.exe工具,这是一个简单的sqlite数据库管理工具。
程序运行生成的*.db文件一般位于"/data/data/项目名(包括所处包名)/databases/*.db",因此要对数据库文件进行操作需要先找到数据库文件:
1、进入shell 命令
adb shell
2、找到数据库文件
#cd data/data#ls --列出所有项目#cd project_name --进入所需项目名#cd databases #ls --列出现寸的数据库文件
3、进入数据库
#sqlite3 test_db --进入所需数据库
会出现类似如下字样:
SQLite version 3.6.22Enter ".help" for instructionsEnter SQL statements terminated with a ";"sqlite>
至此,可对数据库进行sql操作。
4、sqlite常用命令
>.databases --产看当前数据库>.tables --查看当前数据库中的表>.help --sqlite3帮助>.schema --各个表的生成语句
- android中的数据存储
- Android中的数据存储
- Android中的数据存储
- Android 中的数据存储
- android中的数据存储
- Android 中的数据存储
- android中的数据存储
- Android中的数据存储
- android中的数据存储
- Android中的数据存储
- android中的数据存储
- Android中的数据存储
- android中的数据存储
- android中的数据存储
- Android中的数据存储
- Android中的数据存储
- android中的数据存储
- android中的数据存储 收藏
- 简单使用Git和Github来管理自己的代码和读书笔记
- CSS魔法堂:你一定误解过的Normal flow
- GreenDao的简单使用说明(四)特殊的单表1:n
- PAT (Basic Level) Practise-1001
- HTML,CSS字体英文
- Android中的数据存储
- Quartz 框架快速入门(三)
- 嵌入式学习-驱动开发前奏-lesson2-内存管理与进程管理子系统
- schema_reference.4: 无法读取方案文档 'http://cxf.apache.org/schema/jaxws.xsd', 原因为 1) 无法找到文档; 2) 无法读取文档; 3)
- PO DTO DAO 小结
- Android画一条虚线
- performSelector 那点事
- GreenDao的简单使用说明(五)多表n:m
- C#中的排序