ObjectInputStream缓存数据
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缓存数据的更多相关文章
- plain framework 1 网络流 缓存数据详解
网络流是什么?为什么网络流中需要存在缓存数据?为什么PF中要采用缓存网络数据的机制?带着这几个疑问,让我们好好详细的了解一下在网络数据交互中我们容易忽视以及薄弱的一块.该部分为PF现有的网络流模型,但 ...
- thinkphp 缓存数据
thinkphp 中内置了缓存操作 3.1版本的数据缓存方法是cache 基本用法: S(array('type'=>'xcache','expire'=>60)); 缓存初始化 缓存初始 ...
- HTML5本地缓存数据
//HTML5本地缓存数据 function putObj(key, data) { if (!!window.localStorage) { var obj = { "key": ...
- 刷新本地的DNS缓存数据
ipconfig /flushdns”执行,刷新本地的DNS缓存数据. ipconfig /displaydns 查看本地DNS缓存记录的命令为:ipconfig /displaydns.你 ...
- 网站缓存数据到tomcat服务器
通过缓存使相同的数据不用重复加载,降低数据库的访问 public class CacheFilter implements Filter { //实例变量[每线程共享] private Map< ...
- iOS五种本地缓存数据方式
iOS五种本地缓存数据方式 iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...
- IE浏览器中ajax使用缓存数据的问题
今天做了一个小功能:点击鼠标实时更新系统时间,采用ajax,过程很顺利,没遇到啥差错,谷歌,火狐,欧鹏一律通过,怀着忐忑的心情点开了IE8,果然,IE要对得起前端杀手的称号:更新不了时间. 查了一下这 ...
- Java通过SpyMemcached来缓存数据
配置好Magent+memcached后,很明显数据之间的输入与输出都是通过代理服务器的,magent是做代理服务器的很明显java在memecached的调用驱动在magent同样适用. 这里选择S ...
- ThinkPHP使用Memcached缓存数据
ThinkPHP默认使用文件缓存数据,支持Memcache等其他缓存方式,有两个PHP扩展:Memcache和Memcached,Memcahe官方有说明,主要说一下Memcached. 相对于PHP ...
随机推荐
- 图片oom问题
1.什么是OOM? 程序申请内存过大,虚拟机无法满足我们,然后自杀了.这个现象通常出现在大图片的APP开发,或者需要用到很多图片的时候.通俗来讲就是我们的APP需要申请一块内存来存放图片的时候,系统认 ...
- flask初次搭建rest服务笔记
官网中有用的记录一下,太多只是记录了最简单的官网docs:http://flask.pocoo.org/docs/0.12/ 跑起来一个程序 $ export FLASK_APP=hello.py $ ...
- FreeMarker使用后台枚举
//页面使用枚举全路径访问 model.addAttribute("enums", BeansWrapper.getDefaultInstance().getEnumModels( ...
- [原创]java WEB学习笔记09:ServletResponse & HttpServletResponse
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- mysql高可用研究(二) 主从+MHA+Atlas
关于Atlas的详细介绍请访问:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md 为什么要使用Atlas?应用程序直连数据库不好吗? ...
- 【Flask】查询分页问题处理
遇到两次查询结果分页的问题, 查询出结果后, 翻页时导致查询条件失效. 处理方式 1. 路由中不放page参数 写成 @testfile.route("/test-file", m ...
- log4net性能小探
初步测试了Log4性能.Appender架构如下. 一般客户端,使用FileAppender,把Log记录在本地磁盘. <lockingModel type="log4net.Appe ...
- C# Stopwatch与TimeSpan详解
http://www.cnblogs.com/newstart/archive/2012/09/21/2696884.html
- Web前端理论知识记录
Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...
- java:Eclipse插件springsource-tool-suite的下载和安装
1.打开下载页面http://spring.io/tools/sts/all 找到这个,后补全部版本链接http://spring.io/tools/sts/legacy 插件压缩包下载安装: 链接下 ...