以下のコードを使用して、デスクトップに保存されたファイルからデータを取得し、作成しているゲームに入力します。Javaシリアル化とオブジェクトの扱い
try {
FileInputStream saves = new FileInputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser");
ObjectInputStream in = new ObjectInputStream(saves);
test = (player) in.readObject();
in.close();
saves.close();
} catch(IOException error) {
error.printStackTrace();
return;
} catch(ClassNotFoundException error) {
error.printStackTrace();
return;
}
また、プレーヤーオブジェクトを取り込んでファイルに入力するセクションもあります。
player realPlayer = new player();
realPlayer.name = newName;
realPlayer.gender = newGender;
realPlayer.hasStarted = false;
try {
FileOutputStream fileOut = new FileOutputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(realPlayer);
out.close();
fileOut.close();
} catch(IOException i) {
i.printStackTrace();
}
私が午前問題は、ファイルに複数のプレイヤーデータを保存した場合、それはすべてのデータを取り、1つのプレイヤオブジェクトに変換しますので、それがエラーを呼び出すことです。私はデータを分割できる簡単な方法をご存じですか?私は、それぞれの異なるオブジェクトのデータを格納するために複数のファイルを使用することについて考えました。私はまた、データを取り出して別のオブジェクトに分割してそこから作業することについても持っていますが、2番目のものをどこから始めるべきかはわかりません。
プレーヤーのSetまたはHashMapをシリアル化することはどうですか? – BCartolo
@BCartoloどうしたらいいですか?問題は、ファイルに複数のプレーヤーが常に存在するとは限らないことです。 – Shaydoth
サイズ1のセットはあなたに合っていないので.....? – whitesite