探究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; }