2013-05-09 34 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

相关问题