【问题标题】:will the serialized data gets changed after every time program gets executed?每次程序执行后,序列化数据会改变吗?
【发布时间】:2026-01-26 11:35:02
【问题描述】:

我正在尝试使用序列化存储多个员工详细信息,这些详细信息是永久存储还是在每次执行后更改

Emp[] em2= (Emp[]) ois.readObject();
            for(Emp em3:em2 ){
                System.out.println(em3.id);
                System.out.println(em3.name);
                System.out.println(em3.age);
                System.out.println(em3.salary);
            }
            ois.close();

【问题讨论】:

  • 每次序列化它都会改变。这肯定很明显吗?

标签: java serialization deserialization


【解决方案1】:

这取决于序列化数据的情况。如果您将序列化数据保存到某个文件或数据库,那么它不会改变。

但是,如果将序列化数据传递给某个服务,该服务对其执行某些操作,然后将其持久化到某个存储并且您访问数据,那么它将被更改。

编辑

每次将数据写入文件时,请确保将其附加到文件中,否则每次运行程序时都会覆盖以前的数据。

【讨论】:

  • 我将其存储到文件中
  • 确保数据被附加到文件中并且没有被覆盖。
  • 我该怎么做?
  • 传递true 同时创建FileWriter fw = new FileWriter("output.txt", true);
  • @harishhari 有效果还是有其他问题?