我想在我的java程序運行時保存一些我的類。所以我可以加載它們,如果我再次啓動程序。它在3個類中的2箇中工作得很好(save()代碼除了saveURL之外在所有類中都是相同的)。但這個似乎有一些問題..更奇怪的是,save()方法在運行時第一次運行2-3次,但隨後它開始拋出錯誤。方法調用相隔5-10秒,所以應該不是問題。 我能做些什麼呢?我已經設置PageLayoutMedia爲 「實現Serializable」 ..Java Objectwriter,保存類
@SuppressWarnings("serial")
public class DataManager implements Serializable{
private LinkedList<PageLayoutMedia> mediaPages = new LinkedList<PageLayoutMedia>();
public Datamanager(...){ ... }
private void privateSave(){
try{
//delete old save file
MyFileWriter.deleteFile(saveURL);
// Open a file to write to
FileOutputStream saveFile=new FileOutputStream(saveURL);
// Create an ObjectOutputStream to put objects into save file.
ObjectOutputStream save = new ObjectOutputStream(saveFile);
// Now we do the save.
save.writeObject(mediaPages);
// Close the file.
save.close(); // This also closes saveFile.
}
catch(Exception e){
// if we land here - we got an error
}
}
場景:
- 1保存() mediaPages初始化,但是空:保存完整
- 第二保存() mediaPages有一個元素:保存完成
第3次保存() mediaPages有兩個元素:引發錯誤:(
@SuppressWarnings("serial") public abstract class PageLayout implements Serializable{ private long ID; private String URL; protected static String backgroundColor; protected static Dimension dim; protected static String mediaURL; public PageLayout(Long ID, String URL) { ... } } @SuppressWarnings("serial") public abstract class PageLayoutMedia extends PageLayout{ private AnzeigeZeitraum zeitraum; protected Dimension mediaDim; protected String mediaURL; protected int borderTop; public PageLayoutMedia(Long ID, String URL, AnzeigeZeitraum zeitraum, Dimension mediaDim, String mediaURL) { super(ID, URL); ... } } @SuppressWarnings("serial") public class PageLayoutFullpicture extends PageLayoutMedia { public PageLayoutFullpicture(AnzeigeZeitraum zeitraum, Dimension mediaDim, String mediaURL, Long ID, String URL) { super(ID, URL, zeitraum, mediaDim, mediaURL); ... } }
請追加'PageLayoutMedia'的內容。 – Smutje
而錯誤是?也許你應該替換「如果我們在這裏 - 我們得到了一個錯誤」,其中有一些事實上記錄了錯誤。然後將輸出粘貼到您的問題中。 – kdgregory