SharedPreferences
- SharedPreferences对象本身只能获取数据,不支持存储和修改,存储修改通过Editor对象实现
- 使用方法
- 获取SharedPreferences对象
- 获取SharedPreferences.Editor对象
- 通过Editor接口的putXXX方法保存key-value对(其中XXX表示不同的数据类型)
- 通过Editor接口的commit方法提交key-value对
SQLite
- 特点
- 轻量级 一个动态库,单文件
- 独立性 无依赖,无需安装
- 隔离性 全部在一个文件夹中
- 跨平台 支持多系统
- 多语言接口 支持多种编程语言
- 安全性 事务
- 数据类型
- NULL, Integer, real, text, blob(二进制对象)
- 弱引用,自动转换
- SQLiteDatabase
- 提供管理sqlite数据库的类(curd)
-
- cursor
- Sqlite实例
//创建数据库并打开
SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
//插入
db.execSQL("create table if not exists usertb(" +
"_id integer primary key autoincrement," +
"name text not null," +
"age integer not null," +
"sex text not null)");
db.execSQL("insert into usertb(name, age, sex) values('张三','女',18)");
db.execSQL("insert into usertb(name, age, sex) values('李四','女',19)");
db.execSQL("insert into usertb(name, age, sex) values('王五','女',20)");
//查询
Cursor c = db.rawQuery("select * from usertb", null);
if(c != null) {
while(c.moveToNext()) {
Log.i("info", "_id " + c.getInt(c.getColumnIndex("_id")));
Log.i("info", "name " + c.getString(c.getColumnIndex("name")));
Log.i("info", "age " + c.getInt(c.getColumnIndex("age")));
Log.i("info", "sex " + c.getString(c.getColumnIndex("sex")));
}
//释放游标
c.close();
}
//关闭数据库
db.close();
- SQLiteOpenHelper
- 是sqlitedatebase的帮助类,用于数据库的管理和版本更新
- 常用方法
其中oncreate方法在首次创建库的时候调用,一般建库和建表的操作放在这里
File
- 实例
//创建文件
File file = new File("/mnt/sdcard/test");
if(!file.exists()) {
try{
file.createNewFile();
}
}
//删除
file.delete();
//获取当前应用程序默认目录
File file = this.getFilesDir();
Log.i("info", file.toString());
//当前应用程序默认缓存文件存放目录
File file = this.getCacheDir();
//本应用下/data/data/<包名>/app_name
File file = this.getDir("name", MODE_PRIVATE);
//如果手机是api8以上,可以使用外置存储位置,sdcard
this.getExternalCacheDir();
//使用流写入文件
- 以上三个数据存储方式都不能与本应用外进行数据共享,ContentProvider可用于不同应用间数据共享