Serializable bliver min skæbne
Ja, nu har jeg så kæmpet med at serialize en klasse i alt for lang tid. Det er ingen problemer med at skrive objektet, men jeg får en IOException når jeg vil læse objektet igen! Hvad gør jeg galt?public void loadUserDataBase() {
try {
myUserDataBase = getUserDataBase();
}
} catch (IOException e) {
System.out.println("IOException");
} catch (ClassNotFoundException e) {
System.out.println("no file on harddisk");
}
}
public void saveUserDataBase() {
try {
putUserDataBase(myUserDataBase);
System.out.println("UserDataBasen er Gemt");
} catch (IOException e) {
System.out.println("Could not save userDataBase");
}
}
}
-----------------------------------------------------------
import java.io.*;
public class SerializedUserDataBaseFile extends SerializedObjectFile {
public SerializedUserDataBaseFile(String filename) {
super(filename);
}
public void putUserDataBase(UserDataBase myUserDataBase) throws IOException {
putObject(myUserDataBase);
}
public UserDataBase getUserDataBase() throws IOException, ClassNotFoundException {
getObject();
if (getObject() == null) {
return null;
}
return (UserDataBase) getObject();
}
}
-----------------------------------------------------------
import java.io.*;
public class SerializedObjectFile {
final protected String filename;
public SerializedObjectFile(String filename) {
this.filename = filename;
}
protected void putObject(Serializable myUserDataBase) throws IOException {
FileOutputStream outStream;
ObjectOutputStream objStream;
outStream = new FileOutputStream(filename);
objStream = new ObjectOutputStream(outStream);
objStream.writeObject(myUserDataBase);
objStream.flush();
objStream.close();
}
protected Object getObject() throws IOException, ClassNotFoundException {
try {
Object myObject;
FileInputStream inStream;
ObjectInputStream objStream;
inStream = new FileInputStream(filename);
objStream = new ObjectInputStream(inStream);
myObject = (UserDataBase) objStream.readObject();
objStream.close();
return (UserDataBase) myObject;
}
catch (FileNotFoundException e) {
System.out.println("!no such file!");
return null;
}
}
}
-----------------------------------------------------------
