Java 프로그램이 실행 중일 때 일부 클래스를 저장하고 싶습니다. 그래서 프로그램을 다시 시작하면로드 할 수 있습니다. 3 개의 클래스 중 2 개의 클래스에서 잘 작동합니다 (save() 코드는 saveURL을 제외한 모든 클래스에서 동일합니다). 하지만이 중 하나는 몇 가지 문제가있는 것 같습니다. wierd thing은 save() 메서드가 실행되는 동안 처음 2-3 번 작동하지만 오류가 발생하기 시작합니다. 메서드 호출은 5-10 초 간격으로 나타나므로 문제가되어서는 안된다. 무엇을 할 수 있습니까? 나는 이미 .. PageLayoutMedia 설정 "Serializable를 구현"을Java Objectwriter, Save Classes
@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 초기화하지만 비어 : 전체
- 2 저장() mediaPages을 저장 한을 가지고 요소 : 저장 완료
3 번째 save() 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