Android 五种存储方式个人总结
一 . 文件存储
FileOutputStream out = openFileOutput("data",Context.MODE_PRIVATE);
BufferedWriter writer = new BufferedWriter(new OutputStream(out));
String s ;
writer.writer(s);
二. sharePreferences 存储 (键值对形式)
方法 1. Context 类中的getSharedPreferences("文件名字",操作模式) 方法
操作模式一般两种 :
MODE_PRIVATE 只允许本进程使用
MODE_MULTI_PROCESS ('mʌltɪ)多的进程
方法 2. Activity类中的getSharedPreferences(操作模式) 方法
方法 3. PreferenceManager类中的getSharedPreferences()方法
写: SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putString("key",value);
读: SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.get("key","没有值时候默认")
三. SQLite
1.首先要创建一SQLiteOpenHelper数据库的辅助类,类中有a,b两个方法
a. onCreate()用于创建表 ,如
Public void onCreate(SQLiteDatabase db){
db.execSQL(创建表语句)
}
b.onUpgrade()
2.创建一个打开或现有的数据库
SQLiteOpenHelper msh = new SQLiteOpenHelper(content或this,DB_name,null,Version版本);
SQLiteDatabase db = msh.getwritableDatabase()
3.添加数据
// ContentValue类似hashMap
ContentValues contentValues = new ContentValues();
contentValues.put("key",values);
db.insert("表名",条件或null,contentValues)
4.查询数据
Cursor cursor = db.query("表名",null,null,null,null,null,null);
if(cursor.moToFirst()){
String data = cursor.getString(cursor.getColumnIndex("data"));
}while(cursor.moveToNext);
cursor.close();
5. 改正数据
db.update("表名",values,"data=?",new String[]{"new data"});
6.删除数据
db.update("表名","pages>?",new String[]{"500"}); //删除pages大于500的表
四. ContentProvide共享数据的存储
注意 : 通过 Context 中的 getContentResolver()方法获取到该类的实例, Uri对象来查询表中的数据
Uri 可以是 ContactsContract.CommonDataKinds.Phone.CONTENT_URI(读取联系人的权限)
1.内容 URI给内容提供器中的数据建立
了唯一标识符,它主要由两部分组成,权限(authority)和路径(path)
authority : 包名 + provider 比如 com.example.app.provider
path : 表名 比如table1
头部加上协议声明
URI 标准的格式写法:content://com.example.app.provider/table1
Uri uri = Uri.parse("content://com.example.app.provider/table1")
2.创建数据
ContentValues values = new ContentValues();
values.put("column1", "text");
getContentResolver().insert(uri, values);
3.查询数据
Cursor cursor = getContentResolver().query(uri,projection,selection,selectionArgs,sortOrder);
if (cursor != null) {
while (cursor.moveToNext()) {
String column1 = cursor.getString(cursor.getColumnIndex("column1"));
}
cursor.close();
}
4.修改数据
getContentResolver().update(uri, values, "column1 = ? and column2 = ?", newString[] {"text", "1"});
5.删除数据
getContentResolver().delete(uri, "column1 = ?", new String[] { "1" });
四(2) 自定义ContentProvider
1. 自定义类继承ContentProvider类,重新 onCreate() , query() , insert() ,update() , delete() , getType() 方法
自定义不用uri.parse(),但是首先要对比uri是否相等 uriMatcher.match(传入的uri) ,其次getType()是根据uri相等,返回 Uri 对象所对应的 MIME类型 .
MIME类型的规定 :
1. 必须以 vnd 开头。
2. 如果内容 URI 以路径结尾,则后接 android.cursor.dir/,如果内容 URI 以 id 结尾,
则后接 android.cursor.item/。
3. 最后接上 vnd.<authority>.<path>。比如vnd.android.cursor.dir/vnd.com.example.app.provider.table1
vnd.android.cursor.item/vnd. com.example.app.provider.table1
2. manifest.xml 文中声明
<provider
android:name = "比如com.example.databasetest.DatabaseProvider"
android:anthorities = "比如com.example.databasetest.provider"
/>
五.
通过网路的空间存储数据,比如上传文件和下载文件,有比如 用户资料的上传和下载核对
Android 五种存储方式个人总结的更多相关文章
- android五种存储方式
http://www.cnblogs.com/smalltigerlee/archive/2011/11/10/2244143.html
- Android五种数据存储方式
android 五种数据存储 :SharePreferences.SQLite.Contert Provider.File.网络存储 Android系统提供了四种存储数据方式.分别为:SharePre ...
- Android数据的四种存储方式
作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File. ...
- Android开发_Android数据的四种存储方式
Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...
- [Android]Android数据的四种存储方式
存储方式 Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/d ...
- (转)Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- [转][Android]Android数据的四种存储方式
android.database.sqlite类 SQLiteQueryBuilder java.lang.Object android.database.sqlite.SQLiteQueryBuil ...
随机推荐
- Delphi中那些容易混淆的基础(@、^、Addr、Pointer,Move、CopyMemory,GetMem和FreeMem、GetMemory和FreeMemory、New和Dispose、StrAlloc和StrDispose、AllocMem)
@.^.Addr.Pointer Delphi(Pascal)中有几个特殊的符号,如@.^等,弄清楚这些符号的运行,首先要明白Delphi指针的一些基础知识:指针,是一个无符号整数(unsigned ...
- 以太坊geth主网全节点部署
以太坊geth主网全节点部署 #环境 ubuntu 16.4 #硬盘500GB(目前占用200G) #客户端安装 # 查看下载页面最新版 # https://ethereum.github.io/go ...
- MySQL不能启动 Can't start server : Bind on unix socke
MySQL服务器突然不能启动,查看最后的启动日志如下: 080825 09:38:04 mysqld started080825 9:38:04 [ERROR] Can't start server ...
- 初识MVCSharp
MVCSharp其实是MVP模式 主要内容 ITask IView IController
- (转)rabbitmq.config详细配置参数
rabbitmq.config详细配置参数 Key Documentation tcp_listeners 用于监听 AMQP连接的端口列表(无SSL). 可以包含整数 (即"监听所有接口& ...
- Python第一弹--------初步了解Python
Python是一种跨平台的语言,这意味着它能够运行在所有主要的操作系统中. 语法规范几乎同C语言. 字符串: 当像Python输入一个字符串时,首先要输入一个引号.单引号.双引号.三引号三者等价.通常 ...
- samba文件共享服务配置一(共2节)
一.samba服务简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上 ...
- <option> 标签的 value 属性
<html> <body> <form action="/example/html/form_action.asp" method="get ...
- NULL头文件
#include<stddef.h> NULL不是C语言基本类型,其定义在stddef.h文件中,作为最基本的语言依赖宏存在.但是随着C/C++的发展,很多文件只要涉及了系统或者标准操作都 ...
- AI学习资料
OpenAI Gym介绍 http://m.blog.csdn.net/u010510350/article/details/71450232