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 ...
随机推荐
- vs2008 发布网站时丢失文件问题
右键指定的文件->属性, 将生成操作更改成为"内容"就可以了.
- PAT 天梯赛 L3-001. 凑零钱 【DP】【DFS】
题目链接 https://www.patest.cn/contests/gplt/L3-001 思路 DP[I][J] I 表示第几个物品 J 表示多少钱 dp[i][j] 为 bool 值 表示 当 ...
- P3160 [CQOI2012]局部极小值
题目 P3160 [CQOI2012]局部极小值 一眼就是状压,接下来就不知道了\(qwq\) 做法 我们能手玩出局部小值最多差不多是\(8,9\)个的样子,\(dp_{i,j}\)为填满\(1~i\ ...
- fzu 1476 矩形个数
注意点:精度 #include<iostream> using namespace std; typedef long long ll; int main() { int a,b; ll ...
- CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇
CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...
- 算法(Algorithms)第4版 练习 2.1.24
代码实现: package com.qiusongde; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; ...
- HDU 4089 Activation:概率dp + 迭代【手动消元】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4089 题意: 有n个人在排队激活游戏,Tomato排在第m个. 每次队列中的第一个人去激活游戏,有可能 ...
- fastjson转对象的一些属性设置
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> < ...
- Redis-benchmark使用总结
Redis-benchmark为Redis性能测试工具. 指令说明: Usage: redis-benchmark [-h <host>] [-p <port>] [-c &l ...
- 几个常用的url生成二维码的接口
找到了几个URL生成的接口,速度上可能会有差别,可试验后选用,我用过第一个,分享: <!doctype html> <html lang="en"> < ...