DataManager

/**
* 本地数据的存储
* @author Administrator
*
*/
public class DataManager {
private static final String TEST_FILENAME="testorder.asc";
private static final String TEST_ABCPATH="/data/data/deliver.jms.com.cn/files/testorder.asc"; //包名
private static final String LOGIN="login";
private static final String NOTIFYORDERS="notifyorders";
private static final String PRODUCT="product";
private static final String SKU="sku";
private static final String ORDER="order";
private static final String BITMAP="bitmap";
private HashMap<String,ArrayList<Object>> DataList = null;
private volatile static DataManager instance; private DataManager(Context context){
File file=new File(TEST_ABCPATH);
if(!file.exists()){
DataList = new HashMap<String,ArrayList<Object>>();
DataList.put(SKU, new ArrayList<Object>());
DataList.put(PRODUCT, new ArrayList<Object>());
DataList.put(LOGIN, new ArrayList<Object>());
DataList.put(NOTIFYORDERS, new ArrayList<Object>());
DataList.put(ORDER, new ArrayList<Object>());
DataList.put(BITMAP, new ArrayList<Object>());
writeObjectToFile(context,DataList);
}
}
/**
* 得到本类的一个实例对象
* @param context
* @return
*/
public static DataManager getInstance(Context context){
if(instance == null){
synchronized(DataManager.class){
if(instance == null){
instance = new DataManager(context);
}
}
}
return instance;
}
/**
* 将对象写入本地存储文件中
*/
private synchronized void writeObjectToFile(Context context,HashMap<String, ArrayList<Object>> map){
ObjectOutputStream oos=null;
try {
oos=new ObjectOutputStream(context.openFileOutput(TEST_FILENAME, Context.MODE_PRIVATE));
//将对象写入文件中
oos.writeObject(map);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
if(oos!=null){
try {
oos.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
} }
/**
* 读本地文件中的数据对象
*/
private synchronized HashMap<String, ArrayList<Object>> readObjectFromFile(Context context,String fileName){ HashMap<String, ArrayList<Object>> objects=null;
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(context.openFileInput(fileName));
//得到本地数据的所有对象
objects = (HashMap<String, ArrayList<Object>>) (ois.readObject()); } catch (Exception e) {
e.printStackTrace();
}finally{
if(ois !=null){
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} return objects;
} /**
* 保存登陆数据
*/
public void saveLoginData(Context context,Object login){
HashMap<String, ArrayList<Object>> map = readObjectFromFile(context,TEST_FILENAME);
if(map!=null && login!=null){
ArrayList<Object> loginData = map.get(LOGIN);
if(loginData!=null){
loginData.add(login);
writeObjectToFile(context,map);
}
}
}
/**
* 得到登陆数据
*/
public ArrayList<Object> getLoginData(Context context){
ArrayList<Object> loginData=null;
HashMap<String, ArrayList<Object>> objects = readObjectFromFile(context,TEST_FILENAME);
if(objects!=null){
loginData = objects.get(LOGIN);
} return loginData;
}
}

ObjectInputStream缓存数据的更多相关文章

  1. plain framework 1 网络流 缓存数据详解

    网络流是什么?为什么网络流中需要存在缓存数据?为什么PF中要采用缓存网络数据的机制?带着这几个疑问,让我们好好详细的了解一下在网络数据交互中我们容易忽视以及薄弱的一块.该部分为PF现有的网络流模型,但 ...

  2. thinkphp 缓存数据

    thinkphp 中内置了缓存操作 3.1版本的数据缓存方法是cache 基本用法: S(array('type'=>'xcache','expire'=>60)); 缓存初始化 缓存初始 ...

  3. HTML5本地缓存数据

    //HTML5本地缓存数据 function putObj(key, data) { if (!!window.localStorage) { var obj = { "key": ...

  4. 刷新本地的DNS缓存数据

    ipconfig /flushdns”执行,刷新本地的DNS缓存数据. ipconfig /displaydns      查看本地DNS缓存记录的命令为:ipconfig /displaydns.你 ...

  5. 网站缓存数据到tomcat服务器

    通过缓存使相同的数据不用重复加载,降低数据库的访问 public class CacheFilter implements Filter { //实例变量[每线程共享] private Map< ...

  6. iOS五种本地缓存数据方式

    iOS五种本地缓存数据方式   iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...

  7. IE浏览器中ajax使用缓存数据的问题

    今天做了一个小功能:点击鼠标实时更新系统时间,采用ajax,过程很顺利,没遇到啥差错,谷歌,火狐,欧鹏一律通过,怀着忐忑的心情点开了IE8,果然,IE要对得起前端杀手的称号:更新不了时间. 查了一下这 ...

  8. Java通过SpyMemcached来缓存数据

    配置好Magent+memcached后,很明显数据之间的输入与输出都是通过代理服务器的,magent是做代理服务器的很明显java在memecached的调用驱动在magent同样适用. 这里选择S ...

  9. ThinkPHP使用Memcached缓存数据

    ThinkPHP默认使用文件缓存数据,支持Memcache等其他缓存方式,有两个PHP扩展:Memcache和Memcached,Memcahe官方有说明,主要说一下Memcached. 相对于PHP ...

随机推荐

  1. 探测web服务器质量——pycurl

    pycurl是一个用C语言写的libcurl Python实现,功能非常强大,支持的操作协议有FTP.HTTP.HTTPS.TELNET等,可以理解为Linux下curl命令功能的Python封装,简 ...

  2. Java多线程系列 JUC锁06 Condition条件

    Condition介绍 Condition中提供了一组类似于Object中的监视器方法.与Lock配合可以完成等待通知模式. Lock lock = new ReentrantLock(); Cond ...

  3. python中reduce()函数

    reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收 ...

  4. dedecms常用标签

    下面总结了58种常见的标签调用,包括关键描述调用.指定调用栏目.列表文章调用.频道栏目调用.当前栏目名称.栏目导航调用.模板路径调用.网站标题调用.友情链接调用.网站版权调用.网站备案调用.当前位置调 ...

  5. Android系统篇之—-编写系统服务并且将其编译到系统源码中【转】

    本文转载自:http://www.wjdiankong.cn/android%E7%B3%BB%E7%BB%9F%E7%AF%87%E4%B9%8B-%E7%BC%96%E5%86%99%E7%B3% ...

  6. UOJ78 二分图最大匹配

    从前一个和谐的班级,有 nlnl 个是男生,有 nrnr 个是女生.编号分别为 1,…,nl1,…,nl 和 1,…,nr1,…,nr. 有若干个这样的条件:第 vv 个男生和第 uu 个女生愿意结为 ...

  7. git use

    git init git init --bare  ''会将文档直接加上.git后缀 具体内容请渡 git add --all git commit -m 'label' git push --all ...

  8. 原生js图片懒加载特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. thinkphp中图片上传的几种好的办法

    http://www.thinkphp.cn/code/701.html http://www.thinkphp.cn/code/151.html

  10. BLOB (binary large object)

    BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型. BLOB是一个大文件,典型的BL ...