(1)SharePreferences:

存入:  SharedPreferences setter = this.getSharedPreferences("spfile", 0);
            SharedPreferences.Editor editor = setter.edit();
            editor.putString("name", et.getText().toString());
            editor.putInt("age", 18);
            editor.putFloat("ID", 374892323);
            editor.commit();

读取: SharedPreferences getter = this.getSharedPreferences("spfile", 0);
           String st = getter.getString("name", "unknow");

SharePreferences方式在数据存储的格式上是采用的XML文件。

(2)FileInputStream and FileOutputStream:

采用的就是基础的Java.io方式读写文件。但是需要注意的是文件路径的写法。在Android上就不要再用 "///mnt/sdcard/data/a.txt"这种写法了。

最好是利用Environment类进行字符串的拼接。拼成完整的路径:

   String sdcardPath = null;
        String filePath = "jerei";
        String fileName="saveFile.txt";
        if( ! Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)){
            sdcardPath = Environment.getExternalStorageDirectory().toString();
            filePath = sdcardPath+File.separator +filePath ;
            FileOutputStream fos = null;
            File fileDir = new File(filePath);
            if( ! fileDir.exists() ){
                fileDir.mkdirs();
            }

  fin = new FileInputStream(new File(filePath, fileName));

(3)SQLite 数据库:

对于SQLite数据库的操作主要依靠两个类:SQLiteDatabase 和 SQLiteOpenHelper

其中后者是一个抽象类,需要自己实现。

private class MySQLiteOpenHelper extends SQLiteOpenHelper {
        
        public MySQLiteOpenHelper(Context context, String name,
                CursorFactory factory, int version) {
            super(context, name, factory, version);
            // TODO Auto-generated constructor stub
        }
        public MySQLiteOpenHelper(Context context){
            this(context, DB_NAME, null, DB_VERSION);
        }

private static final String DB_NAME = "mydb.db";
        private static final int DB_VERSION = 1;
        public static final String NEWS_TAB="news";

@Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
            StringBuilder sb = new StringBuilder();
            sb.append("create table ");
            sb.append(NEWS_TAB);
            sb.append(" ( ");
            sb.append(" id integer primary key autoincrement ,  ");
            sb.append(" title varchar(100) , ");
            sb.append(" author varchar(100) ");
            sb.append(" ) ");
            db.execSQL(sb.toString());
        }

@Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub

}

}

而 SQLiteDataBase 则代表了一个数据库实例,可以通过自己实现 的sqliteOpenHelper类的 getWritableDatabase()方法和 getReadableDatabase()方法获得。

它包含操作数据库的具体方法。如:execSQL , delete ,query(返回一个Cursor类的对象) , update 等。

另外可以实现一个Dao来负责SQLite数据库的具体操作。

Android数据存储的三种方式:SharePreferences , file , SQLite的更多相关文章

  1. android 数据存储的几种方式

    总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式:数据库用起稍烦锁一些,但它有它的优点,比如在海量数 ...

  2. android 数据存储的四种方式.

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

  3. Android数据存储的五种方法汇总

    本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 ...

  4. uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式

    前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...

  5. 数据存储的两种方式:Cookie 和Web Storage

    数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...

  6. 数据存储的两种方式:Cookie 和Web Storage(转)

    数据存储的两种方式:Cookie 和Web Storage   数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡 ...

  7. PHP中数据类型转换的三种方式

    PHP中数据类型转换的三种方式 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形2.(float).(double).(real):转换成 ...

  8. Android数据存储的5种方法

    --使用SharedPreferences存储数据 --文件存储数据 --SQLite数据库存储数据 --使用ContentProvider存储数据 --网络存储数据 Preference,File, ...

  9. Android录制音频的三种方式

    对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...

随机推荐

  1. 四、优化及调试--网站优化--Yahoo军规下

    21.根据域名划分页面内容 很显然, 是最大限度地实现平行下载 22.尽量减少iframe的个数 考虑即使内容为空,加载也需要时间,会阻止页面加载,没有语意,注意iframe相对于其他DOM元素高出1 ...

  2. 实现QQ在线咨询(需先添加好友)

    实现效果如图: 点击客服专员一.二.三之后提示添加qq好友,进行聊天. 代码如下: <div class="attachLeft"> <img src=" ...

  3. 阿里云 SWAP

    https://yq.aliyun.com/articles/52098 https://www.kejianet.cn/aliyun-swap/

  4. php获取当前页面的完整url

    javascript实现: top.location.href 顶级窗口的地址 this.location.href 当前窗口的地址 php实现: //测试网址: http://localhost/b ...

  5. ASP.NET 5探险(8):利用中间件、TagHelper来在MVC 6中实现Captcha

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:由于ASP.NET 5及MVC 6是一个微软全新重新的Web开发平台,之前一些现有的验 ...

  6. linux下vim配置以及一些常用的快捷键

    一些常用的vim编辑器快捷键: h」.「j」.「k」.「l」,分别控制光标左.下.上.右移一格. 按「ctrl」+「b」:屏幕往“后”移动一页. 按「ctrl」+「f」:屏幕往“前”移动一页. 按「c ...

  7. 【转】Kylin的Hierarchies,Derived维度方面配置优化

    http://blog.csdn.net/jiangshouzhuang/article/details/51286150 Hierarchies: 理论上对于N维度,我们可以进行2的N次方的维度组合 ...

  8. 求余VS求模--C语言中表述

    之前看帖子,发现许多时候基本上大家都把求模和求余混为一谈了.但实际上二者的概念是有区别的   1. 求余 在C语言中,求余对应的操作符是%,且a%b求余的最后结果总是与a符号相同,最后的数值为|a|% ...

  9. hdu1150 匈牙利

    http://acm.split.hdu.edu.cn/showproblem.php?pid=1150 题目大意:有两台机器A和B以及N个需要运行的任务.每台机器有M种不同的模式,而每个任务都恰好在 ...

  10. loopback 03

    使用微信开发前准备 微信公众开发者平台 注册开发者账号获取权限: 安装包: wechat, wechat-oauth 微信公众平台操作 登录之后,得到appID和appsecret 根据appID和a ...