怎么破解序列化文件?
1).創建FileOutputStream(創建存取文件的FileOutputStream對象,如果文件不存在,它會自動被創建出來)
FileOutputStream fileStream=new FileOutputStream("MyGame.ser");
(2).創建ObjectOutputStream(它能讓你寫入對象,但無法直接地連接文件,所以需要參數的指引)
ObjectOutputStream os=new ObjectOutputStream(fileStream);
(3).寫入對象(將變量所引用的對象序列化并寫入MyGame.ser這個文件)
os.writeObject(characterOne);
os.writeObject(characterTwo);
os.writeObject(characterThree);
(4).關閉ObjectOutputStream(關閉所關聯的輸出串流)
os.close();
即:Object 寫入 ObjectOutputStream 連接到 FileOutputStream 到文件
3.解序列化的步驟:還原對象
(1).創建FileInputStream(如果文件不存在就會拋出異常)
FileInputStream fileStream=new FileInputStream("MyGame.ser");
(2).創建ObjectInputStream(它知道如何讀取對象,但是要鏈接的stream提供文件存取)
ObjectInputStream os=new ObjectInputStream(fileStream);
(3).讀取對象(每次調用readObject方法都會從stream中讀出下一個對象,讀取順序與寫入順序相同,次數超過會拋出異常)
Object one=os.readObject();
Object two=os.readObject();
Object three=os.readObject();
(4).轉換對象類型(返回值是Object類型,因此必須轉換類型)
GameCharacter elf=(GameCharacter)one;
GameCharacter troll=(GameCharacter)two;
GameCharacter magician=(GameCharacter)three;
(5).關閉ObjectInputStream(FileInputStream會自動跟著關掉)
os.close();
即:文件 被讀取 FileInputStream 被連接 ObjectInputSteam 恢復成對象