android几种存储方式理解心得,

原创 2015年07月09日 09:37:23

经过这几天的学习,对android的存储方式又有了一定的理解。

android里面的存储方式大体有4种,SharedPreferences文件存储,内存存储,SD卡存储,网络存储,数据库存储。

SharedPreferences注册表的注册方式,在底层是一个xml文件,多用在存储配置参数。使用也是非常的简单,先实例化SharedPreferences ,然后通过实例获得其编辑器,通过编辑器操作数据,最后调用编辑器的commit方法提交数据即可。

插入数据如下:SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); //存储的文件名,权限

Editor editor = sharedPreferences.edit();// 获取编辑器
Set<Entry<String, String>> set = map.entrySet();
for (Entry<String, String> e : set) {
editor.putString(e.getKey(), e.getValue());
}
editor.commit(); // 提交修改

删除数据:

public static void remove(Context context, String fileName,
Map<String, String> map) {
if (map == null || context == null || fileName == null) {
return;
}
SharedPreferences sharedPreferences = context.getSharedPreferences(
fileName, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();// 获取编辑器
Set<Entry<String, String>> set = map.entrySet();
for (Entry<String, String> e : set) {
editor.remove(e.getKey());
}
editor.commit(); // 提交修改
}

删除数据和插入数据总的来说大同小异的。只是编辑器根据对应的键,删除对应的值。

查找数据更加简单:public static Map<String, String> find(Context context, String fileName) {
if (context == null || fileName == null) {
return null;
}
SharedPreferences sharedPreferences = context.getSharedPreferences(
fileName, Context.MODE_PRIVATE);
Map<String,String> map=(Map<String, String>) sharedPreferences.getAll();
return map;
}

重要的是调用sharedPreferences的getAll()方法,返回一个Map对象,然后放回给需要调用的位置,再循环取出即可。总的来说sharedPreferences存储方式还是比较简单的,操作也比较简单方便。

内存存储相对于其他的存储方式比较简单,但是其实这样的存储方式其实并不是很常用,因为手机的内存本来就有限。而应用程序又是那么的占用空间。

其机制是使用流,对数据的操作实现读入,写出。

例子代码如下:

数据帮助类如下:

public class FilesUtils {
public static void saveObjectFile(Object obj,String fileName,Context context){
ObjectOutputStream oos=null;
try {
FileOutputStream outputStream=context.openFileOutput(fileName, Context.MODE_PRIVATE);
oos=new ObjectOutputStream(outputStream);
oos.writeObject(obj);
oos.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(oos!=null){
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}

public static Object getObjectFromFile(String fileName,Context context){
Object obj=null;
ObjectInputStream ois=null;
try {
FileInputStream inputstream=context.openFileInput(fileName);
ois=new ObjectInputStream(inputstream);
obj=ois.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally{
if(ois!=null){
try {
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return obj;
}
}

SD卡的存储稍微的复杂一点:要操作sd卡,要获得其对应的权限,


这些权限都是Users Permission下的权限,在确定的时候必须要核对清楚、

而且,由于不同的android手机的sd卡的路径是不一样的,所以要用到android提供的Environment静态类操作环境信息。

public void onClick(View arg0) {
//保存sd卡..
//2构建sd卡的路径
if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Toast.makeText(MainActivity2.this, "此手机没有加载SD卡...", 3000).show();
return;
}
FileOutputStream fos=null;
//3用流的方式写入到SD卡中
try {
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
Date date=new Date();
String fn=sdf.format(date)+".png";
File f=new File(Environment.getExternalStorageDirectory(), fn);
fos=new FileOutputStream(f);
bitmap.compress(CompressFormat.PNG, 100, fos);
fos.flush();
savePicToPerson(f.getAbsolutePath());
Toast.makeText(MainActivity2.this, "存到SD卡成功", 3000).show();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}

其中要通过Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)表达式判断是否装载了内存卡,实现第一步的判断。

如果是存储图片到内存卡的话,则可以通过流的方式存储

File f=new File(Environment.getExternalStorageDirectory(), fn);
fos=new FileOutputStream(f);
bitmap.compress(CompressFormat.PNG, 100, fos);  
fos.flush();

由于网络存储和数据库存储涉及的知识点比较多,下篇博客在详细说明。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android数据存储几种方式用法总结

Android数据存储几种方式用法总结 1、概述   Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求...

Android存储数据的几种方式--Shared preference和files

Android保存数据的方式,有如下四种: 1、Shared Preferences:主要用于保存程序的系统配置信息。用来存储“key-values paires”。一般用于保存程序启动时设定的信息,...

Android几种数据存储方式的应用场景

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

android中的几种数据存储方式

文章转自沈大海老师csdn学生大本营: 一、Preferences Preferences是一个较轻量级的存储数据的方法,具体使用方法: 在A中保存值: SharedPrefere...

android系列:数据存储的几种方式

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

Android几种数据存储方式的应用场景

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

android 数据存储的几种方式

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

android 本地存储的几种方式

身为一个android码农,我认为最常见的的两种数据存储:本地存储和网络存储 那么本地存储有哪些方式呢?分别如何实现呢?下面跟大家细说android的几种存储方式和实现方法 1 使用SharedP...

Android几种数据存储的方式

这是我的第一篇博客,前言也不多说什么,有点小激动,还是直接进入正题吧。 RT,今天要写的是安卓几种数据存储的方式。 一,首先我想到的就是创建本地数据库,前段时间刚用了一个叫GreenDao的第三方,他...

Android入门之数据存储那么几种方式

在实际的开发中,Android提供了5种数据存储的方式: 1)文件存储数据 2)使用SharedPreferences存储数据 3)使用SQLite数据库存储数据 4)使用ContentProvide...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)