1

私は小さなゲームを作っており、現在シリアライゼーションに取り組んでいます。オブジェクトの現在の状態をなんとか保存できましたbattlegroundが、ロードできないようです。

これは、構文エラーが発生する私の方法です。

//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 Docs でメソッドを調べると、メソッドのパラメータはその型であるはずです。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

1 に答える 1

4

newキーワードがありません

new ObjectInputStream(saveFile)

なんでreadObject()二度電話するのかも気になる

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

あなたのsaveToFile()コードが一度だけ書いているとき

out.writeObject(battleground);
out.close();
于 2013-05-09T11:27:14.993 に答える