zoukankan      html  css  js  c++  java
  • SharedPreferences 存储对象

    package com.example.atest;
    
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.StreamCorruptedException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.commons.codec.binary.Base64;
    
    import android.app.Activity;
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    
        TextView tv;
        SharedPreferences preferences;
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tv=(TextView)findViewById(R.id.aaa);
            List<Map> list=new ArrayList<Map>();
            for(int i=0;i<3;i++){
                Map map=new HashMap();
                map.put(1, true);
                map.put(2, "abcbd");
                map.put(3, "dsa");
                list.add(map);
            }
            this.saveMap(list);
            List<Map> list3=this.readMap();
            String s="";
            for(int i=0;i<3;i++){
                Map map=list3.get(i);
                s+=""+map.get(1)+map.get(2)+map.get(3);
            }
            tv.setText(s);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
        public void saveMap(List<Map> maps) {
            String keyName="";
            preferences = getSharedPreferences("abc", Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE) ;
            // 创建字节输出流
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            try {
                // 创建对象输出流,并封装字节流
                ObjectOutputStream oos = new ObjectOutputStream(baos);
                // 将对象写入字节流
                oos.writeObject(maps);
                // 将字节流编码成base64的字符窜
                String map_Base64 = new String(Base64.encodeBase64(baos
                        .toByteArray()));
                Editor editor = preferences.edit();
                
                editor.putString("abc", map_Base64);
    
                editor.commit();
            } catch (IOException e) {
                // TODO Auto-generated
            }
            Log.i("ok", "存储成功");
        }
        public List<Map> readMap() {
            List<Map> list2 = null;
            preferences = getSharedPreferences("abc", Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE) ;
            String mapBase64 = preferences.getString("abc", "");
                    
            //读取字节
            byte[] base64 = Base64.decodeBase64(mapBase64.getBytes());
            
            //封装到字节流
            ByteArrayInputStream bais = new ByteArrayInputStream(base64);
            try {
                //再次封装
                ObjectInputStream bis = new ObjectInputStream(bais);
                try {
                    //读取对象
                    list2 = (List<Map>) bis.readObject();
                } catch (ClassNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (StreamCorruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return list2;
        }
    }

    记得下载commons-codec-1.4.jar这个包

    http://download.csdn.net/detail/yaingsoul/4229579

  • 相关阅读:
    ZOJ 2859 Matrix Searching
    URAL 1102. Strange Dialog
    ZOJ 1986 Bridging Signals
    POJ 3233 Matrix Power Series
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    ZOJ 3471 Most Powerful
    IIS:HTTP 错误 403.9 禁止访问:连接的用户过多
    使用Command对象执行数据库操作
    C#类型转换
  • 原文地址:https://www.cnblogs.com/xing-yun/p/3310049.html
Copyright © 2011-2022 走看看