java序列化与ObjectOutputStream和ObjectInputStream的实例详解

一个测试的实体类:

public class Param implements Serializable {

  private static final long serialVersionUID = 5187074869820982336L;


  private Integer param1;
  private String param2;

  public Integer getParam1() {
    return param1;
  }

  public void setParam1(Integer param1) {
    this.param1 = param1;
  }

  public String getParam2() {
    return param2;
  }

  public void setParam2(String param2) {
    this.param2 = param2;
  }

}

 测试:

public class Main {

  public static void main(String[] args) throws Exception {
    SerializeParam();

    Param param = DeserializeParam();
    System.out.println(MessageFormat.format("param1={0},param2={1}", param.getParam1(), param.getParam2()));
  }

  /**
   * 将实体类序列化到本地
   * @throws FileNotFoundException
   * @throws IOException
   */
  private static void SerializeParam() throws FileNotFoundException, IOException {
    Param param = new Param();
    param.setParam1(123);
    param.setParam2("asdf");

    ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream( new File("E:/param.txt") ));
    oo.writeObject(param);
    System.out.println("Person对象序列化成功!");
    oo.close();
  }

  /**
   * 反序列化
   * @return
   * @throws Exception
   * @throws IOException
   */
  private static Param DeserializeParam() throws Exception, IOException {
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream( new File("E:/param.txt")));
    Param param = (Param) ois.readObject();
    System.out.println("Person对象反序列化成功!");
    ois.close();
    return param;
  }

}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!

02-09 03:20