从反序列化代码更改数据

时间:2018-03-23 09:43:45

标签: java deserialization

我只想知道如何从反序列化中更改数据。我的计划需要:

询问用户是否要更改学生信息并将新数据存储在文本文件中。

这是我的代码:



{{1}}




lization部分

1 个答案:

答案 0 :(得分:1)

假设你有一个类似的学生班 -

public class Student {
  private String Name;
  private int ID;
  private int Average;
  /**
   * @return the name
   */
  public String getName() {
    return Name;
  }
  /**
   * @param name the name to set
   */
  public void setName(String name) {
    Name = name;
  }
  /**
   * @return the iD
   */
  public int getID() {
    return ID;
  }
  /**
   * @param iD the iD to set
   */
  public void setID(int iD) {
    ID = iD;
  }
  /**
   * @return the average
   */
  public int getAverage() {
    return Average;
  }
  /**
   * @param average the average to set
   */
  public void setAverage(int average) {
    Average = average;
  }


}

反序列化后,您将从文件中读取一个Object,现在要修改Student对象。

 st1 = (Student) in.readObject();
 st2 = (Student) in.readObject();
 st3 = (Student) in.readObject();

这里有st1,st2和st3学生对象。 您可以通过调用Student Object的setter方法来修改st1名称。 例如,如果您想修改学生姓名,您只需要致电

st1.setName("modifyName");

修改后,您可以通常的方式在文件中编写st1修改过的对象。