1
我有一個名爲Doodle的對象,我將它序列化爲一個字符串,這沒關係。 當我嘗試反序列化對象時,問題出現,錯誤是: java.io.InvalidClassException:java.util.ArrayList;局部類不相容:流classdesc的serialVersionUID = 8664875232659988799,局部類的serialVersionUID = 8683452581122892189種java.io.InvalidClassException:從字符串到對象的序列化失敗java
的方法進行序列化和反序列化如下:
public static String serDoodle(Doodle dood){
String serializzato = null;
try {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream so = new ObjectOutputStream(bo);
so.writeObject(dood);
so.flush();
serializzato = bo.toString();
so.close();
bo.close();
} catch (Exception e) {
System.out.println(e);
}
return serializzato;
}
public static Doodle deserDoodle(String deserializza){
Doodle dod = new Doodle();
try {
byte[] b = deserializza.getBytes();
ByteArrayInputStream bi = new ByteArrayInputStream(b);
ObjectInputStream si = new ObjectInputStream(bi);
dod=(Doodle) si.readObject();
si.readObject().getClass();
si.close();
bi.close();
} catch (Exception e) {
System.out.println("deserDoodle "+e);
}
return dod;
}
我使用相同的方法(但具有不同的變量)來序列另一個對象的類型和它的作用很大。 我不明白哪裏出了問題!
所以你說,字符串越長,它會丟失更多的數據? – user3457185
@ user3457185像往常一樣,'你說'的問題,我什麼都沒說。我說使用'String'作爲二進制數據的容器是不行的。期。它與長度無關。 – EJP