一 . 文件存储

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 五种存储方式个人总结的更多相关文章

  1. android五种存储方式

    http://www.cnblogs.com/smalltigerlee/archive/2011/11/10/2244143.html

  2. Android五种数据存储方式

    android 五种数据存储 :SharePreferences.SQLite.Contert Provider.File.网络存储 Android系统提供了四种存储数据方式.分别为:SharePre ...

  3. Android数据的四种存储方式

    作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File. ...

  4. Android开发_Android数据的四种存储方式

    Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...

  5. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...

  6. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite

    SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...

  7. [Android]Android数据的四种存储方式

    存储方式 Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/d ...

  8. (转)Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...

  9. [转][Android]Android数据的四种存储方式

    android.database.sqlite类 SQLiteQueryBuilder java.lang.Object android.database.sqlite.SQLiteQueryBuil ...

随机推荐

  1. Day24-26 项目练习(图书商城)

    图书商城 环境搭建 导入原型 用户模块 分类模块 图书模块 购物车模块 订单模块   2 功能分析 前台 用户模块: 注册 激活 登录 退出 分类模块: 查看所有分类 图书模块: 查询所有图书 按分类 ...

  2. Linux java Tomcat 项目中 new Date 获取时间 8小时 时差

    转载自: https://blog.csdn.net/liqinghuiyx/article/details/53333284 起因:在本地开发的WEB项目部署到Linux 下后,存入数据库的时间少了 ...

  3. HDU1796How many integers can you find(容斥原理)

    在计数时,必须注意无一重复,无一遗漏.为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计 ...

  4. PAT 1127 ZigZagging on a Tree[难]

    1127 ZigZagging on a Tree (30 分) Suppose that all the keys in a binary tree are distinct positive in ...

  5. testng日志和报告

    TestNG是通过 Listeners 或者 Reporters 生成测试报告. Listeners,即 org.testng.ITestListener 的实现,能够在测试执行过程中发出各种测试结果 ...

  6. Java 对比Vector、ArrayList、LinkedList

    ①引言 在日常生活中能高效的管理和操作数据是非常重要的.Java提供了强大的集合框架,大大提高了开发者的生产力,今天就了解一下有关集合框架方面的问题. Vector.ArrayList.LinkedL ...

  7. SQL学习笔记八之ORM框架SQLAlchemy

    阅读目录 一 介绍 二 创建表 三 增删改查 四 其他查询相关 五 正查.反查 一 介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进 ...

  8. 从官网学习Node.js FS模块方法速查

    最新文档请查看仓库 https://github.com/wangduandu... 1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参 ...

  9. Linux服务器使用tar加密压缩文件

    使用tar命令进行加密压缩时需要和OpenSSL进行结合 加密压缩命令如下: tar -zcf - filename |openssl des3 -salt -k passwd | dd of=fil ...

  10. HDU 6425 Rikka with Badminton(组合问题签到)题解

    题意:问你有多少种选法使得不能满足大于等于2个拍子且大于等于1个球. 思路:数学组合问题,分类讨论一下,刚开始的时候分的很乱,写的乱七八糟的...还有注意MOD,基本上有大数相乘的地方都要先MOD一下 ...