i working on persistence of java project (media player). supposed save added files , load them if user re-opens program.
i using library purpose, store tracks/concerts/albums added user :
import java.io.serializable; import java.util.list; public class musiclibrary implements displayable, serializable { private static musiclibrary reference; public static genericlist<singletrack> alltracks; public static genericlist<album> allalbums; public static genericlist<concert> allconcerts; public static genericlist<artist> allartists; /**private constructor keep users instantiating class more once*/ private musiclibrary(){ alltracks = new genericlist<singletrack>(); allalbums = new genericlist<album>(); allconcerts = new genericlist<concert>(); allartists = new genericlist<artist>(); } /**method makes sure class instantiated once*/ public static musiclibrary getlibrary(){ if(reference == null) reference = new musiclibrary(); return reference; } public void addtrack(singletrack musictrack){ alltracks.add(musictrack); } public void addalbum(album album){ allalbums.add(album); } public void addconcert(concert concert){ allconcerts.add(concert); } public void addartist(artist artist){ allartists.add(artist); } public singletrack[] gettracks(){ return (singletrack[]) alltracks.toarray(); } /*public string displaytracks(){ return alltracks.displaylist(); }*/ public string gettitle() { return null; } public string fordisplay() { return null; } public string getname(){ return null; } public static class getlibrary { public getlibrary() { } } } then have class called persistentlibrary manage persistence of library (i.e: save library , load back) :
package dj2.persistence; import java.io.dataoutputstream; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; import java.io.objectinputstream; import java.io.objectoutputstream; import dj2.core.*; public class persistentmusiclibrary { private static string librarystore = "library.ser"; private static musiclibrary library; private static objectinputstream libraryin; private static objectoutputstream libraryout; private persistentmusiclibrary(){ //don't let instantiate me } public static musiclibrary getinstance(){ if(library == null){ try{ system.out.print("1"); libraryin = new objectinputstream(new fileinputstream(librarystore)); library = (musiclibrary)libraryin.readobject(); libraryin.close(); }catch(exception ex){ library = musiclibrary.getlibrary(); } } return library; } public static void savelibrary()throws ioexception { if(library == null) return; //system.out.println("you not null"); libraryout = new objectoutputstream(new fileoutputstream(librarystore)); libraryout.writeobject(library); libraryout.close(); } } the problem save method doesn't seem work, since can't find generated file on computer, , doesn't throw exception either. call in actionlistener of menuitem "save" :
menufilesave.addactionlistener(new actionlistener(){ public void actionperformed(actionevent ae){ try{ persistentmusiclibrary.savelibrary(); }catch(ioexception ioe){ system.out.println("fail save"); } }}); can me debugg please?
Comments
Post a Comment