ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
2656
2656
EMPFEHLEN
-
27.04.07 21:59 #1
- Registriert seit
- Nov 2005
- Beiträge
- 213
Hallo,
ich habe ein Klasse, die mir ein Objekt serialisiert:
Code :1 2 3 4 5
... ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(FILENAME,true)); os.writeObject(flug); os.close(); ...
In der Datei FILENAME sind mehrere Objekte serialisiert, die ich wieder deserialisieren möchte. Ich weiss daß ich irgendwie eine Schleife brauche, nur bin ich mit Filehandling noch nicht so sehr vertraut. Mein Versuch sah so aus, lieferte aber nur das erste Objekt:
Code :1 2 3 4 5 6 7 8
... ObjectInputStream is = new ObjectInputStream(new FileInputStream(FILENAME)); try { System.out.println(is.readObject().toString()); } catch (ClassNotFoundException e) { } is.close(); ...
wie komme ich nun an alle Objekte heran?
Problem ist auch, daß ich nicht genau sagen kann wie die Datei aufgebaut ist. Je nachdem mit welchem Editor ich mir diese ansehe, habe ich mehrer Zeilen oder nur eine.
Für Hilfe bin ich dankbar.
chickenwings
-
28.04.07 16:30 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
schau mal hier:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
/** * */ package de.tutorials; import java.io.Serializable; import java.util.Arrays; /** * @author Tom * */ public class SomeSerializableObject implements Serializable{ /** * */ private static final long serialVersionUID = -6895664047998708850L; String data; int value; Serializable[] objects; /** * */ public SomeSerializableObject() { super(); // TODO Auto-generated constructor stub } /** * @param data * @param value * @param objects */ public SomeSerializableObject(String data, int value, Serializable[] objects) { super(); this.data = data; this.value = value; this.objects = objects; } /** * @return the data */ public String getData() { return data; } /** * @param data the data to set */ public void setData(String data) { this.data = data; } /** * @return the value */ public int getValue() { return value; } /** * @param value the value to set */ public void setValue(int value) { this.value = value; } /** * @return the objects */ public Serializable[] getObjects() { return objects; } /** * @param objects the objects to set */ public void setObjects(Serializable[] objects) { this.objects = objects; } @Override public String toString() { return this.data + " " + this.value + " " + Arrays.toString(objects); } }
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
/** * */ package de.tutorials; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; /** * @author Tom * */ public class MultipleSerializationExample { /** * @param args */ public static void main(String[] args) throws Exception { File objectStore = new File("c:/objectStore.ser"); ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(objectStore)); objectOutputStream.writeObject("Hallo"); objectOutputStream.writeObject(Integer.valueOf(1000)); objectOutputStream.writeObject(new SomeSerializableObject("XXX",4711,new Serializable[]{1})); objectOutputStream.close(); ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(objectStore)); Object o = objectInputStream.readObject(); System.out.println(o + " ->" + o.getClass()); o = objectInputStream.readObject(); System.out.println(o + " ->" + o.getClass()); o = objectInputStream.readObject(); System.out.println(o + " ->" + o.getClass()); objectInputStream.close(); } }
Ausgabe:
Code :1 2 3
Hallo ->class java.lang.String 1000 ->class java.lang.Integer XXX 4711 [1] ->class de.tutorials.SomeSerializableObject
Du musst die Objekte eben in der Reihenfolge auslesen in der du sie serialisiert hast.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
08.05.07 11:46 #3
- Registriert seit
- May 2007
- Beiträge
- 4
Hallo,
ich habe das selbe Problem.
Ich schreibe ein objecte in ein File und will es danach wieder auslesen.
Das Schreiben funkt. wunderbar, es wird ein Object nach dem anderen
in der Datei angefügt, doch leider funkt. das Auslesen nicht so richtig.
Ich bekomme immer nur das erst Object ausgelesen und danach nichts weiter,
selbst wenn ich weiss wieviele Objecte in der Datei liegen und ich sie manuel
auslesen will, kommt leider immer nur das erste Object raus.
Eigentlich soll das Auslesen in einer while-schleife umgesetzt werden,
so im Stil
Code :1 2 3 4 5 6 7
ObjectInputStream o = new ObjectInput.... while(o.readObject() != null) { //ausgabe des gespeicherten objektes }
Vielleicht kann mir ja jemand etwas spannendes zu diesem Thema erzählen.
Vielen Dank!
Fallout Boy
Ähnliche Themen
-
AE: Bewegungsbahn für mehrere Objekte?
Von ByeByeBeautiful im Forum Videoschnitt, Videotechnik & -produktionAntworten: 0Letzter Beitrag: 10.05.10, 10:36 -
UVW - Mehrere Objekte ?
Von aimheld im Forum Cinema 4DAntworten: 14Letzter Beitrag: 09.01.09, 20:57 -
mehrere Objekte in Liste
Von Reen_sc im Forum JavaAntworten: 1Letzter Beitrag: 21.05.07, 16:34 -
[ASP.net 1.1] Mehrere Objekte im Session Scope
Von Patrick Kamin im Forum .NET Web und KommunikationAntworten: 2Letzter Beitrag: 21.11.05, 11:41 -
mehrere objekte
Von coolerouny im Forum JavaAntworten: 7Letzter Beitrag: 06.07.05, 17:06





Zitieren

Login





