Dateispeicherung

Status
Nicht offen für weitere Antworten.
S

sambacket

Gast
Hallo,

ich habe folgenden Code:
Code:
File fi = fc.getSelectedFile();
try{
FileOutputStream fos = new FileOutputStream(fi);

ObjectOutputStream out = new ObjectOutputStream(fos); //Datei zum Schreiben öffnen
out.writeObject(GleisFeld); //Schreiben
System.out.println(Gleisfeld[0].index); ///////////////Ausgabe
out.flush();
out.close();


FileInputStream fost = new FileInputStream(fi);
ObjectInputStream in = new ObjectInputStream(fost); //Öffenen
GleisFeld=(Gleis[])in.readObject();
System.out.println(Gleisfeld[0].index);////////////////Ausgabe
}
Was mache ich falsch. das Gleisfeld ist ein Feld mit Typ Objekt. Wenn ich nun das Objekt speichere und dann wieder lade. ergibt die Ausgabe (System.out.println(Gleisfeld[0].index)) etwas anderes


cu
 
S

sambacket

Gast
Gleis.index ist public static int

und die methoden in dem objekt sind public int oder public void



was hat denn das damit zu tun?

danke
 

L-ectron-X

Gesperrter Benutzer
Als transient gekennzeichnete Elemente werden nicht serialisiert und statische Elemente können nicht serialisiert werden. Aber das scheint mir in deinem Fall nicht relevant zu sein.

Ich benutze zum Serialisieren diese Methode:
Code:
    public boolean serialize(String filename, java.io.Serializable data) {
        try {
            java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(
                new java.io.FileOutputStream(
                    new java.io.File(filename)));
            
            oos.writeObject(data);
            oos.close();
        }
        catch(java.io.NotSerializableException nse) {
            return false;
        }
        catch(java.io.IOException ioe) {
            return false;
        }
        return true;
    }
Zum Deserialisieren diese:
Code:
    public Object deserialize(String filename) {
        Object object = null;
        try {
            java.io.ObjectInputStream ois = new java.io.ObjectInputStream(
                new java.io.FileInputStream(
                    new java.io.File(filename)));
            
            object = ois.readObject();
            ois.close();
        }
        catch(java.io.IOException ioe) {
            return null;
        }
        catch(ClassNotFoundException cnfe) {
            return null;
        }
        
        return object;
    }
}
 
S

Sambacket

Gast
Das ist ja schon relevant. denn ich möchte ja index auch speichern können.
 
G

Guest

Gast
Was möchtest du mit dem Index erreichen bzw. welchen Sinn hat es
diese Momentaufnahme von Gleis.index zu speichern?
Da es "static" ist, ist es kein Attribut des Objekts, das du speicherst,
sondern gehört zu der Klasse Gleis.
 
Status
Nicht offen für weitere Antworten.

Oben