Android数据存储的三种方式:SharePreferences , file , SQLite
(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的更多相关文章
- android 数据存储的几种方式
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式:数据库用起稍烦锁一些,但它有它的优点,比如在海量数 ...
- android 数据存储的四种方式.
Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...
- Android数据存储的五种方法汇总
本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 ...
- uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...
- 数据存储的两种方式:Cookie 和Web Storage
数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...
- 数据存储的两种方式:Cookie 和Web Storage(转)
数据存储的两种方式:Cookie 和Web Storage 数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡 ...
- PHP中数据类型转换的三种方式
PHP中数据类型转换的三种方式 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形2.(float).(double).(real):转换成 ...
- Android数据存储的5种方法
--使用SharedPreferences存储数据 --文件存储数据 --SQLite数据库存储数据 --使用ContentProvider存储数据 --网络存储数据 Preference,File, ...
- Android录制音频的三种方式
对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...
随机推荐
- mac版的PS和DW破解版安装
到网上找到破解版的安装文件,一般是一个dmg安装文件,和一个补丁文件,安装的时候,要先断网,然后点击软件,选试用安装,安装完毕后,不要打开软件,直接关闭掉,然后到应用程序里找到软件图标,右击打开包文件 ...
- 三、jQuery--jQuery基础--jQuery基础课程--第10章 jQuery UI型插件
1.拖曳插件——draggable 拖曳插件draggable的功能是拖动被绑定的元素,当这个jQuery UI插件与元素绑定后,可以通过调用draggable()方法,实现各种拖曳元素的效果,调用格 ...
- 在线预览Office文件【效果类似百度文库】(转载)
转载地址:http://www.cnblogs.com/sword-successful/p/4031823.html 引言 结合上个项目和目前做的这个项目,其中都用到了Office文件在线预览,目前 ...
- JAVA基础学习之final关键字、遍历集合、日期类对象的使用、Math类对象的使用、Runtime类对象的使用、时间对象Date(两个日期相减)(5)
1.final关键字和.net中的const关键字一样,是常量的修饰符,但是final还可以修饰类.方法.写法规范:常量所有字母都大写,多个单词中间用 "_"连接. 2.遍历集合A ...
- 设计模式学习之装饰者模式(Decorator,结构型模式)(16)
参考地址:http://www.cnblogs.com/zhili/p/DecoratorPattern.html 一.定义:装饰者模式以对客户透明的方式动态地给一个对象附加上更多的责任,装饰者模式相 ...
- 第九篇:在SOUI中使用多语言翻译
为UI在不同地区显示不同的语言是产品国际化的一个重要要求. 在SOUI中实现了一套类似QT的多语言翻译机制:布局XML不需要调整,程序代码也不需要调整,只需要为不同地区的用户提供不同的语言翻译文件即可 ...
- Git 基础操作
[TOC] 在Linux上安装Git $ git --version #查看git的版本号 $ sudo apt-get install git # 安装git 创建版本库 $ git init # ...
- 在Asp.Net MVC中设定site路径所对应的默认action
设置路由的default的Controller和Action可以达到我们预期的效果,代码如下所示: public class RouteConfig { public static void Regi ...
- BZOJ 3289: Mato的文件管理 莫队+BIT
3289: Mato的文件管理 Description Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号.为了防止他人偷拷,这些资料都是加密过的 ...
- LISP学习-开发环境以及hello world
我想说说关于common lisp的开发环境问题,学习一个新的语言,如何最简单的搭建一个开发环境是至关重要的,它应该不让你在其他方面花费太多的精力,而只专注于学习语言本身. 其实我刚开始尝试的并不是c ...