Ich habe eine Klasse Shape
die Serializable
-Schnittstelle implementiert, sparte ich 3 Objekte in eine Datei namens file.ser
und ich konnte sie erfolgreich wieAnzahl der serialisierten Objekte in der Datei
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("file.ser"));
Shape[] shapes = new Shape[6];
shapes[0] = (Shape) ois.readObject();
shapes[1] = (Shape) ois.readObject();
shapes[2] = (Shape) ois.readObject();
ois.close();
in diesem Beispiel folgende abrufen Ich weiß, Anzahl der Objekte, sondern in anderen Anwendungen würde ich nicht wissen so, bis wir lesen Sie weiter Ausnahme immer
List<Shape> shapes = new ArrayList<>();
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(new FileInputStream("file.ser"));
while (true) {
Shape shape = (Shape) ois.readObject();
shapes.add(shape);
}
} finally {
if (ois != null)
ois.close();
}
gibt es einen besseren Weg, oder ist dies die einzige zur Verfügung?