安卓存储对象到本地

来源:互联网 发布:如何连接linux服务器 编辑:程序博客网 时间:2024/06/06 19:40

直接上代码:

public class MainActivity        extends AppCompatActivity{    private String mNum;    private String mPw;    private TextView mTv;    private User mUser;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        mNum = "616368996";        mPw = "123abc";        String base64pw = Base64.encodeToString(mPw.getBytes(), Base64.DEFAULT);        mTv = (TextView) findViewById(R.id.tv);        mUser = new User();        mUser.setNum(mNum);        mUser.setPw(base64pw);    }    public void clickSave(View view) {        saveObject("userinfo",mUser);        Toast.makeText(this, "存储数据到本地成功", Toast.LENGTH_SHORT)             .show();    }    public void clickShow(View view){        //得到保存于本地路径的对象        User saveinfo = (User) getObject("userinfo");        if (null == saveinfo){            Toast.makeText(this, "请重新登录:  ", Toast.LENGTH_SHORT)                 .show();        }else{            String pw  = saveinfo.getPw();            //解密            String decodeString = new String(Base64.decode(pw.getBytes(), Base64.DEFAULT));            Toast.makeText(this, "读取数据成功:  "+decodeString, Toast.LENGTH_SHORT)                 .show();        }    }    public void cleanData(View view){        deleteFile("userinfo");        Toast.makeText(this, "清除数据成功", Toast.LENGTH_SHORT)             .show();    }    private void saveObject(String name,Object object){        FileOutputStream   fos = null;        ObjectOutputStream oos = null;        try {            fos = this.openFileOutput(name, MODE_PRIVATE);            oos = new ObjectOutputStream(fos);            oos.writeObject(object);        } catch (Exception e) {            e.printStackTrace();            //这里是保存文件产生异常        } finally {            if (fos != null){                try {                    fos.close();                } catch (IOException e) {                    //fos流关闭异常                    e.printStackTrace();                }            }            if (oos != null){                try {                    oos.close();                } catch (IOException e) {                    //oos流关闭异常                    e.printStackTrace();                }            }        }    }    private Object getObject(String name){        FileInputStream   fis = null;        ObjectInputStream ois = null;        try {            fis = this.openFileInput(name);            ois = new ObjectInputStream(fis);            return ois.readObject();        } catch (Exception e) {            e.printStackTrace();            //这里是读取文件产生异常        } finally {            if (fis != null){                try {                    fis.close();                } catch (IOException e) {                    //fis流关闭异常                    e.printStackTrace();                }            }            if (ois != null){                try {                    ois.close();                } catch (IOException e) {                    //ois流关闭异常                    e.printStackTrace();                }            }        }        //读取产生异常,返回null        return null;    }}


User 类:


public class User implements Serializable {//要继承,实现序列化    private static final String TAG = "User";    private String num ;    private String pw ;    public String getNum() {        return num;    }    public void setNum(String num) {        this.num = num;    }    public String getPw() {        return pw;    }    public void setPw(String pw) {        this.pw = pw;    }}



0 0
原创粉丝点击