Android数据存储总结

Android 当中实现数据存储,总结一下可以有四种方式惊醒实现:

一、通过SharedPreferences+Editor实现存储

在Android开发过程中有时一些应用要用到少量简单的数据的存储,直接使用数据库有不是很方便,这是我们可以用到SharedPreferences + Editor 的方式进行存储简单方便。一般来说SharedPreferences 所存储的数据都是类似一些数据信息格式的数据(有点类似于Windows中的ini文件),以Key-Value 的形式进行存储。其保存的是一个xml文件。下面介绍一些常用到的方法

SharedPrefarenced:

getXXX(String key ,XXX defValue)用来从数据库当中取得数据。

abstract Map<String ,?>getAll()得到全部的key-Value的数据

edit() 得到Editor对象才能进行数据的存储

Editor

putXXX(String key,xxx Value)向其中存储数据

commit()提交  (一定要记得提交保存)

remove(String key)删除键值对

SharedPreference的几个参数:

Context.MODE_PRIVATE:指定SharedPreference的数据只能被本应用读写

Context.MODE_WORLD_READABLE:指定SharedPreference的数据被本其他应用读

context.MODE_WORLD_WRITEABLE:指定SharedPreference的数据被本其他应用写

写一个Demo:

	public void onClick(View view){
		SharedPreferences preferences =  getSharedPreferences("smma", Context.MODE_PRIVATE);
		Editor edit = preferences.edit();
		if(view.getId()==R.id.query){
			String time = preferences.getString("time", null);
			showView.setText("当前时间:"+time);
		}else if (view.getId()== R.id.save) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			edit.putString("time", sdf.format(new Date()));
			//一定记得提交
			edit.commit();
		}
	}

二、通过IO流(openFileInput 、openFileOutput)保存到SD卡

JavaSE有一套完整的IO流体系,Android中也可以通过这一系列的IO流来操作系统中的文件。Context提供了FileInputStream openFileInput(String fileName)以及FileOutputStream openFileOutput(String fielName,int mode)来获得操作文件的IO流。其中得到输出流的参数有如下几种形式:

MODE_PRIVATE:该文件只能被当前程序写

MODE_APPEND:以追加的方式打开文件,应用程序可以向该文件中追加内容

MODE_WORLD_READABLE:该文件的内容可以被其他的程序读

MODE_WORLD_WRITEABLE:该文件的内容可以被其他的程序读写.

Android因为是手机平板系统其还有一个特殊之处,在于其能支持SD卡,下面介绍一下操作SD卡的步骤:

1、调用Environment.getExternalStorageState()判断手机上是否插入了SD卡,并且引用程序具有读写SD卡的权限。

2、调用Environment.getExternalStorageDirectory()获得外部存储器。

3、使用IO流操作文件。

当然最重要的要记得在配置文件AndroidManifest.xml中添加权限

     <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
     <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

写一个简单的DEMO:




三、通过sql保存包Android自带的SqLiteDatabase数据库

Android自带了一个SQLite数据库(类似与微软的ACESS)本质上是一种便捷的文件操作。Android 还有一个ORM框架ormlite后面将结合框架讲解SQLite数据库以及数据持久化操作。



四、通过Android四大组件之一的ContentProvider进行保存

ContentProvider 是Android提供的四大组件之一。专门用来操作数据。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值