0
我一直在試圖反序列化一個分數列表。我花了我整整一天在這裏尋找,但未能找到解決的辦法。我的代碼看起來是這樣的:另一個序列化問題
public class Score implements Comparable<Score>, Serializable {
private String name;
private int score;
// .......
}
public class MySortedList<T> extends...implements...,Serializable {
private ArrayList<T> list;
// ....
}
public class ScoreManager {
private final String FILEPATH;
private final String FILENAME = "highscores.ser";
private MySortedList<Score> scoreList;
public ScoreManager() {
File workingFolder = new File("src\\games\\serialized");
if (!workingFolder.exists()) {
workingFolder.mkdir();
}
FILEPATH = workingFolder.getAbsolutePath();
if ((scoreList = loadScores()) == null) {
scoreList = new MySortedList<Score>();
}
}
public void addScore(Score score) {
scoreList.add(score);
saveScores();
}
public MySortedList<Score> getScoreList() {
return scoreList;
}
private void saveScores() {
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(new File(FILEPATH, FILENAME)))) {
out.writeObject(scoreList);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
@SuppressWarnings("unchecked")
private MySortedList<Score> loadScores() {
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File(FILEPATH, FILENAME)))) {
return (MySortedList<Score>) in.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
的loadScores()方法返回只是一個空MySortedList每次。 但是,程序在正確的位置成功創建了highscores.ser文件,我絕對沒有錯誤。 Score對象被正確添加到MySortedList對象中。
任何想法?也許值得一提的是,這是Swing製作的更大程序的一部分。在ScoreManager類中的方法當玩家死亡
您是否獲得一個堆棧跟蹤?如果是這樣,請把它包括在這裏。 –
我什麼都沒得到:( – Amoz
你應該試試[SimpleXML](http://simple.sourceforge.net/)。 – ManoDestra