探究JAVA序列化与反序列化
序列化JavaBean对象
public class User implements Serializable {
/**
* 序列化User
*
* 继承Serializable接口
* 添加序列化ID
*/
private static final long serialVersionUID = 5451342742084459797L;
private Integer user_id;
private String user_name;
private String user_password;
private String user_img;
private Integer user_value;
private Date user_punch;
private List<Code> code_id;
}
序列化User
/**
* 序列化
*
* @param fileName
* @param o
* @throws FileNotFoundException
* @throws IOException
*/
public void serialize(String fileName, Object o) throws FileNotFoundException, IOException {
//利用ObjectOutputStream()方法创建User的序列化文件的输出流
ObjectOutputStream us = new ObjectOutputStream(new FileOutputStream(fileName));
//调用writeObject()将User对象写入序列化文件
us.writeObject(o);
//关闭输出流
us.close();
}
反序列化User
/**
* 反序列化
*
* @param cls
* @param fileName
* @return
* @throws ClassNotFoundException
* @throws IOException
*/
public <T> T unSerialize(Class<T> cls, String fileName) throws ClassNotFoundException, IOException {
//利用ObjectOutputStream()方法获取序列化文件的输入流
ObjectInputStream fi = new ObjectInputStream(new FileInputStream(fileName));
//调用readObject()将文件反序列为User对象
T obj = (T) fi.readObject();
//关闭输入流
fi.close();
//返回User对象
return obj;
}