IO error

I'm trying to write an object to a binary file. I'm reusing code that I used before and it worked, but this time its trowing a IOException. The error is thrown when it tries to write the board to the file.

publicclass IOUtilities{

public IOUtilities(){}

publicvoid saveGame(String filename, MancalaBoard board){

if((filename!=null)&&(!filename.equals(""))){

ObjectOutputStream outStream=null;

try{

outStream =new ObjectOutputStream(new FileOutputStream(new File(filename)));

outStream.writeObject(board);

outStream.close();

System.out.println("Game saved Successfully");

}

catch(FileNotFoundException e){

System.out.println("ERROR: File not found => "+e.getMessage());

}

catch(IOException e){

System.out.println("ERROR: IO ERROR => "+e.getMessage());

}

}

}

public MancalaBoard loadGame(String filename){

if((filename!=null)&&(!filename.equals(""))){

ObjectInputStream inStream=null;

try{

inStream =new ObjectInputStream(new FileInputStream(filename));

MancalaBoard board = (MancalaBoard)inStream.readObject();

inStream.close();

return board;

}

catch(ClassNotFoundException e){

System.out.println("ERROR: Class not found => "+e.getMessage());

}

catch(FileNotFoundException e){

System.out.println("ERROR: File not found => "+e.getMessage());

}

catch(IOException e){

System.out.println("ERROR: IO ERROR => "+e.getMessage());

}

}

returnnull;

}

}

Any ideas? Thanks for any help/suggestions.

[3450 byte] By [slackware_javaa] at [2007-11-27 1:53:13]
# 1
In your catch block use e.printStackTrace() to print the details of the problem.
pbrockway2a at 2007-7-12 1:23:07 > top of Java-index,Java Essentials,Java Programming...
# 2
ERROR: IO ERROR => [Ljava.lang.StackTraceElement;@9664a1
slackware_javaa at 2007-7-12 1:23:07 > top of Java-index,Java Essentials,Java Programming...
# 3

catch(FileNotFoundException e){

e.printStackTrace();

System.out.println("ERROR: File not found => "+e.getMessage());

}

catch(IOException e){

e.printStackTrace();

System.out.println("ERROR: IO ERROR => "+e.getMessage());

}

The e.getMessage() string is not enough.

pbrockway2a at 2007-7-12 1:23:07 > top of Java-index,Java Essentials,Java Programming...
# 4

java.io.NotSerializableException: MancalaBoard

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)

at MancalaApplication$IOUtilities.saveGame(MancalaApplication.java:124)

at MancalaApplication$MainListener.actionPerformed(MancalaApplication.java:52)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.AbstractButton.doClick(AbstractButton.java:357)

at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1170)

at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1211)

at java.awt.Component.processMouseEvent(Component.java:6038)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)

at java.awt.Component.processEvent(Component.java:5803)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4410)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2429)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

ERROR: IO ERROR => MancalaBoard

Message was edited by:

slackware_java

slackware_javaa at 2007-7-12 1:23:07 > top of Java-index,Java Essentials,Java Programming...
# 5
> java.io.NotSerializableException: MancalaBoardWell, there you are then. "Some object to be serialized does not implement the java.io.Serializable interface".
pbrockway2a at 2007-7-12 1:23:07 > top of Java-index,Java Essentials,Java Programming...
# 6
Makes sense now. It works. Thank you for your time pbrockway2.
slackware_javaa at 2007-7-12 1:23:07 > top of Java-index,Java Essentials,Java Programming...
# 7
You're welcome - glad it's working.
pbrockway2a at 2007-7-12 1:23:07 > top of Java-index,Java Essentials,Java Programming...