2013-05-09 37 views
1

我正在製作一個小遊戲,現在正在使用序列化。我已經設法保存了我的battleground對象的當前狀態,但似乎無法加載它。我設法保存,但不能加載(序列化)

這是我的方法that's給我的語法錯誤:

//Reads a Battleground object from disk. 
private Object readFromFile() { 
    FileInputStream saveFile = new FileInputStream("savegame.obj"); 
    ObjectInputStream restore = ObjectInputStream(saveFile); 
    Object obj = restore.readObject(); 
    String name = (String) restore.readObject(); 
    restore.close(); 
} 

我收到錯誤消息「無法找到符號 - 方法的ObjectInputStream(java.io.FileInputStream中)尋找方法在Oracle文檔。該方法中的參數應該是該類型的,我導入了整個java.io庫,任何輸入?這是錯誤的方法嗎?我需要一個方法來加載遊戲。像這樣:

// Saves the Battleground object to disk. 
private void saveToFile() { 
    try{ 
     // Serialize data object to a file 
     ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("Savegame.obj")); 
     out.writeObject(battleground); 
     out.close(); 

     // Serialize data object to a byte array 
     ByteArrayOutputStream bos = new ByteArrayOutputStream() ; 
     out = new ObjectOutputStream(bos) ; 
     out.writeObject(battleground); 
     out.close(); 

     // Get the bytes of the serialized object 
     byte[] buf = bos.toByteArray(); 
    } catch (IOException e) { 

    } 
} 

回答

4

你錯過了new k eyword

new ObjectInputStream(saveFile) 

我也想知道你爲什麼打電話readObject()兩次

Object obj = restore.readObject(); 
String name = (String) restore.readObject(); 

當你saveToFile()代碼編寫一次

out.writeObject(battleground); 
out.close(); 
+0

ehhh嘿嘿..謝謝.. – 2013-05-09 11:30:56

+0

你有沒有還檢查你正在做的雙讀?我不認爲它會起作用,除非它是其他一些對象。 – 2013-05-09 11:49:37

+0

是的,我同意。不是我的領域這一切,所以我一直在學習。現在我掙扎着「未報告的異常java.lang.ClassNotFoundException;必須被捕獲或聲明爲拋出。」 所以我還在掙扎,不知道如何解決它。在readFromFile()方法上。 – 2013-05-09 13:09:55

相關問題