我創建了一個帶有兩個實現Serializable接口的int變量的簡單類。然後我爲這個類創建了對象,並在我的本地文件系統中使用ObjectOutputStream進行序列化。現在重點是序列化後,我通過刪除一個變量修改了serilized類。序列化限制
現在當我嘗試反序列化對象時,它拋出了一個名爲「java.io.InvalidClassException」的異常。
那麼有什麼辦法來限制修改序列化的類。
在java /編程術語中稱爲這種情況。
在此先感謝。
我的代碼如下:
package sample;
import java.io.Serializable;
public class Serial implements Serializable{
int a,b;
public void disp(){
System.out.println(a+" "+b);
}
}
package sample;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class ser {
public static void main(String[] args) {
Serial ss=new Serial();
ss.a=10;
//ss.b=20;
try{
FileOutputStream fio=new FileOutputStream("D:\\abc.ggg");
ObjectOutputStream oos=new ObjectOutputStream(fio);
oos.writeObject(ss);
}
catch(Exception e){
e.printStackTrace();
}
}
}
package sample;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class Dser {
public static void main(String[] args) {
try {
FileInputStream fis=new FileInputStream("D:\\abc.ggg");
ObjectInputStream ois=new ObjectInputStream(fis);
Serial sss=(Serial)ois.readObject();
sss.disp();
System.out.println(sss.a+" ");
} catch (Exception e) {
e.printStackTrace();
}
}
}
請顯示相關代碼。 – mok
不要忘記關閉資源 – hoaz