Android数据存储与IO

一.数据存储
        | Context.getSharedPreferences(Stirng name,int mode)获取指定的SharedPreferences实例
                | 方法第二个参数提供如下几个值
                        | Context.MODE_PRIVATE 指定SharedPreference数据只能被本程序读写
                        | Context.MODE_WORLD_READABLE 指定SharedPreference数据能被其他程序读,但不能写
                        | Context.MODE_WORLD_WRITEABLE 指定SharedPreference数据能被其他程序读写
        | SharedPreferences 保存数据主要是类似于配置信息格式的数据, 即简单的key-value 对;
                | boolean contains(String key) 判断SharedPreferences中是否包括特定key的数据
                | abstract Map<String,?>getAll() 获取SharedPreferences数据里全部的key-value对
                | boolean getXxx(Stirng key,Xxx value) 获取SharedPreferences里指定key对应的value,其中Xxx可以是boolean,int,float等各种基本类型的值
        | SharedPreferences.Editor 数据写入
                | SharedPreferences.Editor clear() 清空SharedPreferences;里的所有数据
                | SharedPreferences.Editor putXxx(Stirng key,Xxx value) 向SharedPreferences中存入指定的key-value数据
                | SharedPreferences.Editor remove(String key) 删除SharedPreferences里指定的key对应的数据项
                | boolean commit() 当Editor编辑完成后,调用该方法提交修改
二.File存储
        | FileInputStream openFileInput(String name) 打开应用程序的数据文件夹下的name文件对应的文件输入流
        | FileOutputStream openFileOutput(String name,int mode) 打开应用程序的数据文件夹下的name文件对应的文件输出流
                | MODE_PRIVATE 该文件只能被当前程序读写
                | MODE_APPEND 以追加的方式打开该文件,应用程序可以向改文件中追加内容
                | MODE_WORLD_READABLE 该文件的内容可以被其他程序读取
                | MODE_WORLD_WRITEABLE 该文件的内容可由其他程序读写
        | getDir(Stirng name,int mode) 在应用程序的数据文件夹下创建或获取name对应的子目录
        | File getFilesDir()获取该应用程序数据文件夹的绝对路径
        | String[] fileList() 返回应用程序的数据文件夹下的所有文件
        | deleteFile(String str) 删除应用程序的数据文件夹下的指定文件
三.读写SD卡上的文件
        | Environment的getExternalStorageState()方法判断手机上是否插入SD卡,并且应用程序具有读写SD卡的权限
                | Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)返回true, 手机已插入SD卡且程序具有读写SD卡的权限
        | Environment的Environment的getExternalStorageDirectory() 获取外部存储器(SD卡)的目录
四.SQLite数据库
        | SQLiteDatabase 代表一个数据库,类似于JDBC的Connection接口
                | static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags) 打开path文件所代表的SQLite数据库
                | static SQLiteDatabase openOnCreateDatabase(File file,SQLiteDatabase.CursorFactory factory) 打开或创建file所代表的SQLite数据库
                | static SQLiteDatabase openOnCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)打开或创建path文件所代表的SQLite数据库
                        | SQLiteDatabase.openOnCreateDatabase("/mnt/db/temp.db3",null) null使用默认工厂
                | execSQL(String sql,Object[] bindArgs) 执行带占位符的sql
                        | db.exexSQL("insert into news_inf values(null,?,?)",new String[]{title,content});
                | execSQL(String sql) 执行sql
                | insert(String table,String nullColumnHack,ContentValues values) 想指定表中插入特定数据
                | update(String table,ContentValues values,String whereClause,String[] whereArgs) 更新指定表中的特定数据
                | delete(String table,,String whereClause,String[] whereArgs) 删除指定表中的特定数据
                | Cursor query(String table,Sring[] columns,String whereClause,String[] whereArgs,String groupBy,String having,String orderBy,String limit)对执行数据表执行                                查询,limit控制最多查询几条记录
                | Cursor query(boolean distinct,String table,Sring[] columns,String whereClause,String[] whereArgs,String groupBy,String having,String orderBy,String limit)                               对指定表执行查询语句,其中第一个参数控制是否去除重复值
                | rawQuery(String sql,String[] seletctionArgs) 执行带占位符的sql查询
                | beginTransaction() 开始事务
                | inTransaction() 上下文处于事物当中返回true
                | endTransaction() 结束事务
        | SQLiteOpenHelper 管理数据库工具类
                | synchronized SQLiteDatabase getReadableDatabase() 以读写的方式打开数据库对应的SQLiteDatabase对象
                | synchronized SQLiteDatabase getWritableDatabase() 以写的方式打开数据库对应的SQLiteDatabase对象
                | abstract void onCreate(SQLiteDatabase db) 当第一次创建数据库时回调该方法
                | abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) 当数据库版本更新时回调该方法
                | synchronized void close() 关闭所有打开的SQLiteDatabase
        | Cursor 返回结果集对象 类似于JDBC的ResultSet
                | move(int offset) 将记录指针向上或向下移动指定的行数,整数向下移动,负数向上移动
                | boolean moveToFirst() 将记录指针移动到第一行,成功返回true
                | boolean moveToLast() 将记录指针移动到最后一行,如果成功返回true
                | boolean moveToNext() 将记录指针移动到下一行,如果移动成功返回true
                | boolean moveToPosition(int position) 将记录指针移动到指定行,如果成功返回true
                | boolean moveToPrevious() 将记录指针移动到上一行,如果移动成功返回true
五.数据共享
        | ContentProvider
                | 方法
                        | public boolean onCreate() 该方法在ContentProvider创建后被回调
                        | public Uri insert(Uri uri ContentValues values) 根据该Uri插入values对应的数据
                        | public int delete(Uri uri,String selection,String[] selectionArgs) 根据Uri删除select条件所匹配的全部记录
                        | public int udpate(Uri uri,ContentValues values,String selection,String[] selectionArgs) 根据Uri修改select匹配的全部记录
                        | public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder) 根据Uri查询select匹配的所有记录,                                                projection就是一个列表列名,表明只选择出指定的数据列
                        | public String getType(Uri uri) 返回Uri所代表的MIME类型
                | 监听
                        | ContentObserver
                                | getContext().getContentResolver().notifyChange(uri,null);通知所有注册在该uri的监听者ContentProvider数据发送改变
        | ContentResolver(获取ContentResolver对象: Context.getContentResolver())
                | insert(Uri uri,ContentValues values)  向Uri对应的ContentProvider插入values对应的数据
                | delete(Uri uri,String where,String[] selectionArgs) 向Uri对应的ContentProvider中where提交匹配的数据
                | update(Uri uri,ContentValues values,String where,String selectionArgs) 更新Uri对应的ContentProvider中where提交匹配的数据
                | query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder) 查询Uri对应的ContentProvider中where提交匹配的数据
                | registerContentObserver(Uri uri,boolean notifyForDescendents,ContentObserver observer) 注册监听器
        | Uri:content://org.crazy.java/world
                | 分解
                        | content:// 头
                        | org.crazy.java
                        | world 资源部分
                | UirMatcher 工具类
                        | void addURI(String authority,Stirng path,int code) 向UirMatcher对象注册uri其中authority,path组成Uri,code表示该Uri的标识码
                        | int match(Uri uri) 根据前面注册的uri来判断指定的uri的标识码,如果找不到返回-1
                | ContentUris 工具类
                        | withAppendedId(Uri id) 用于为路径加上id部分
                                | Uri uri = Uri.parse("content://org.crazy.java/word");  
                                  Uri res = ContentUris.withAppendedId(uri,2)
                                 =>content://org.crazy.java/word/2
                        | paseId(uri) 用于从指定的Uri中解析出ID标识码

                
        
        
   
        
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值