ObjectOutputStream

Status
Nicht offen für weitere Antworten.

siba

Bekanntes Mitglied
Hallo!

Ich habe mehrere Autoobjekte eingelesen, und jetzt wollt ich Sie wieder auslesen und es wird eine Exception geworfen! Wie stelle ich fest wieviel Objekt mein Dokument hat, damit ich sie mit einer for-Schleife auslesen kann?

Code:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class SchreibenObjekte {
	public static void main(String[] args) {
		File f = new File("Objekte.txt");
		Auto a = new Auto();
		a.setFarbe("rot");
		Auto b = new Auto();
		b.setFarbe("rosa");
		try {
			FileOutputStream fw = new FileOutputStream(f);
			ObjectOutputStream oos = new ObjectOutputStream(fw);
			oos.writeObject(a);
			oos.writeObject(a);
			oos.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}




import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class LesenObjekte {
	public static void main(String[] args) throws ClassNotFoundException {
		File f = new File("Objekte.txt");
		try {
			FileInputStream fi = new FileInputStream(f);
			ObjectInputStream ois = new ObjectInputStream(fi);
			int anzahl = ois.readInt();
		
			for (int i = 1; i<=anzahl; i++){ //java.io.EOFException
				Auto auto = (Auto) ois.readObject();
				System.out.println(auto.getFarbe());
			}
		  	fi.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
 
G

Guest

Gast
Schreibe die Objekte in eine Collection, ein Array oder was
auch immer, und serialisiere diese in eine Datei.
 
B

bygones

Gast
entweder wie gesagt die Objekte vorher in eine Collection packen und die dann speichern
oder per available() in einer while schleife überprüfen, ob noch daten zu lesen sind. Solange das geht liest du die Objekte aus
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben