【发布时间】:2023-03-21 21:49:01
【问题描述】:
我有一张地图:
Map<String, DistributorAdd> map= new TreeMap<String, DistributorAdd>();
我把它保存在一个 file.txt 中
FileOutputStream fos = new FileOutputStream("Distrib.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(map);
oos.close();
问题是昨天的经销商是这样的:
public DistributorAdd(String distributor, String
emailAdress, String name, String speciality){...}
明天会这样:
public void ajouter(String Distributor, String EmailAdress,
String Name, String Phone, String Image) {..}
我的同事已经在她的 Distrib.txt 中放置了很多信息,所以我想要的是能够在 Map 中放置一个新字符串而不破坏它。
我想保留 Distrib.txt 和我的 DistributorAdd 函数,有什么简单的步骤可以做到吗?
我得到的错误是:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("Distrib.txt"));
VendorA = (DistributorAdd) ois.readObject();
错误:
IOException : table.java => table()java.io.StreamCorruptedException: invalid stream header: ACED0573
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277)
at car.Table.<init>(Table.java:185)
at car.Table.main(Table.java:837)
如果您有任何问题或需要我提供的更多信息,我将很乐意提供。
【问题讨论】:
-
你是说DistributorAdd类被序列化后改变了?
-
是的:公共类 DistributorAdd 实现 Serializable {..} 我没有考虑可序列化我去看看谢谢。
标签: java map save ioexception treemap