zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    基于alpine定制常用命令镜像
    sudo cat > EOF权限问题
    Nginx AWS ELB 域名解析后端502问题
    harbor使用aws s3存储
    Tomcat 优化和改进
    webservice 使用JaxWsDynamicClientFactory报空指针异常
    spring boot 集成 Apache CXF 调用 .NET 服务端 WebService
    eclipse launching workspace太慢的解决方法
    Remote System Explorer Operation卡死Eclipse解决方案
    同一个Tomcat 同一个端口 部署多个项目
  • 原文地址:https://www.cnblogs.com/java-g/p/4221980.html
Copyright © 2011-2022 走看看