java 将对象序列化为二进制文件,然后在反序列化为对象



java 将对象序列化为二进制文件,然后在反序列化为对象

在开发中有时候为了考虑到 访问量,所以需要优化代码,可以减少用法对数据库的 访问,比如可以将一些不长改变的数据 通过序列化的方式保存在一个文件中 ,然后 用户再次访问的时候可以通过反序列化的方式 从文件中读取。

 
序列化 反序列化的 例子如下:
1、首先 创建一个user类 此类必须实现 Serializable 接口
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;

private Integer id;
private String name;
private String sex;
private String age;
private Country country;
@SuppressWarnings(“unused”)
private User() {
super();
}
//getXXX()和setXXX()方法
}

public class Country implements Serializable{
private String id;
private String countryName;
private String where;
//getXXX()和setXXX()方法
}

public class TestSerialization {
public static void main(String[] args) {
outputObject();
inputObject();
}

private static void inputObject(){
try {
FileInputStream input = new FileInputStream(“d:”+File.separator+”use.out”);
ObjectInputStream objInput = new ObjectInputStream(input);
Object user = (Object) objInput.readObject();
System.out.println(user.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private static void outputObject() {
FileOutputStream os;
try {
os = new FileOutputStream(“d:”+File.separator+”use.out”);
ObjectOutputStream o = new ObjectOutputStream(os);
Country coun = new Country(“2″,”中国”,”east”);
Object user = new User(1, “zhangsan”, “男”,”12″,coun);
o.writeObject(user);
o.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}

这样可以将对象序列化为一个文件, 也可以将文件反序列化为对象。