Sehr geehrte Com,
ich habe folgendes Problem:
Ich habe eine Klasse, die sehr komplex ist, und Code heißt. Diese Klasse enthält in einer
LinkedList viele weitere Objekte, die Tochter-/Unterklassen von "Code" sind.
Ich habe nun die Aufgabe dieses Code Objekt mit den zahlreichen Unterobjekten zu speichern.
Daher wollte ich den ObjectOutput- bzw. ObjectInputStream verwenden.
Wenn ich das so mache:
Beim Speichern werden also Dateien erstellt, in welche dann die Codeobjekte einzeln gespeichert werden sollen. Das klappt soweit auch ganz gut, sieht zumindest so aus, beim Öffnen der Datei sieht man eine Menge sachen.
Doch wenn man dann das Ganze läd
Dann hat das Code Objekt überhaupt keine Elemente.
Was kann man da machen, ist da irgendwie ein grundlegender Fehler passiert, wo kann die Fehlerursache liegen?
Danke,
m.f.G.: Developer_X
ich habe folgendes Problem:
Ich habe eine Klasse, die sehr komplex ist, und Code heißt. Diese Klasse enthält in einer
LinkedList viele weitere Objekte, die Tochter-/Unterklassen von "Code" sind.
Ich habe nun die Aufgabe dieses Code Objekt mit den zahlreichen Unterobjekten zu speichern.
Daher wollte ich den ObjectOutput- bzw. ObjectInputStream verwenden.
Wenn ich das so mache:
Java:
package codestatement;
import java.io.Serializable;
import java.util.LinkedList;
public class Code implements Serializable
{
// Attributes
public LinkedList<CodeStatement> codestatements = new LinkedList<CodeStatement>();
// CodeStatement implementiert auch Serializable
// Constructor
// Methods
}
Java:
// code ist eine Integer Variable
public Code loadCode() throws IOException
{
ObjectInputStream ois =
new ObjectInputStream(new FileInputStream("projects/"+p.name+"/code#"+code+".code"));
try
{
Object o = ois.readObject();
ois.close();
return (Code) o;
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
code++;
return null;
}
// die Methoden saveCode und loadCode sind in unterschiedlichen Klassen, daher auch die Variable
// code in unterschiedlichen Klassen
public void saveCode(Code c)
{
try
{
FileSystem.createFile("projects/"+p.name+"/code#"+code+".code");
FileOutputStream out = new FileOutputStream("projects/"+p.name+"/code#"+code+".code");
ObjectOutputStream oout = new ObjectOutputStream(out);
oout.writeObject(c);
oout.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
code++;
}
Beim Speichern werden also Dateien erstellt, in welche dann die Codeobjekte einzeln gespeichert werden sollen. Das klappt soweit auch ganz gut, sieht zumindest so aus, beim Öffnen der Datei sieht man eine Menge sachen.
Doch wenn man dann das Ganze läd
Java:
// Laden Code
Code c = loadCode();
Was kann man da machen, ist da irgendwie ein grundlegender Fehler passiert, wo kann die Fehlerursache liegen?
Danke,
m.f.G.: Developer_X