android本地保存一个对象,Android 对保存本地化数据使用序列化对象的猜想

对于Java的序列化与反序列化网上的详解很多,这里就不一一复述了

所谓的Serializable,就是java提供的通用数据保存和读取的接口。至于从什么地方读出来和保存到哪里去都被隐藏在函数参数的背后了。这样子,任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化了类的设计。只要设计一个保存一个读取功能就能解决上面说得所有问题。

这是我写的最基本序列化的Demo,过几天我去写个Android的Demo来验证我这个方法的易用度,如果你有什么建议或者更好的想法,请您给我留言或评论我的邮箱是    xiaobo_hello@163.com

public class PersonBean implements Serializable {

private static final long serialVersionUID = 1006948430010584886L;

private String userName = "emtpy";

private int userAge = -1;

private int workYear = -1;

public PersonBean(String _userName, int _userAge, int _workYear) {

setUserName(_userName);

setUserAge(_userAge);

setWorkYear(_workYear);

}

public String resultStr() {

StringBuffer buffer = new StringBuffer();

buffer.append(" userName is :" + getUserName());

buffer.append("\n userAge is :" + getUserAge());

buffer.append("\n workYear is :" + getWorkYear());

return buffer.toString();

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public int getUserAge() {

return userAge;

}

public void setUserAge(int userAge) {

this.userAge = userAge;

}

public int getWorkYear() {

return workYear;

}

public void setWorkYear(int workYear) {

this.workYear = workYear;

}

}

public class SerializePerson {

private PersonBean personBean = new PersonBean("Hello", 34, 11);

public static void main(String[] args) {

SerializePerson serializePerson = new SerializePerson();

serializePerson.savePerson();

serializePerson.readPerson();

}

//序列化对象

public void savePerson() {

try {

FileOutputStream fos = new FileOutputStream(

"D:\\javaBean\\person.bean");

ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(personBean);

oos.flush();

oos.close();

} catch (Exception e) {

// TODO: handle exception

}

}

//反序列化对象

public void readPerson() {

try {

FileInputStream fis = new FileInputStream(

"D:\\javaBean\\person.bean");

ObjectInputStream ois = new ObjectInputStream(fis);

PersonBean myPersonBean = (PersonBean) ois.readObject();

ois.close();

System.out.println(myPersonBean.resultStr());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值