Hallo Leute,
ich schildere euch mal kurz und knapp was mein Programm tun soll und wo mein Problem liegt.
Ich habe eine Klasse Person implementiert, ihr werden im Konstruktor der vorname, der nachname und das geburtsdatum übergeben. die klasse enthält noch eine methode, die das alter der person berechnet.
nun geht es darum dass diese personen gespeichert werden sollen. allerdings kann ich irgendwie nur eine person speichern da er mir die dati immer überschreibt. im folgenden seht ihr den Code der Klasse Persistence die für das Speichern und laden verantwortlich ist:
Jetzt der Quellcode der ausführenden Klasse Geburtstagskalender:
die ausgabe des Programms ist dann 2mal die Daten von alex.
allerdings hätte ich natürlich gern erst die daten von tom und dann von alex.
was mache ich falsch???
Ich hoffe die Problembeschreibung ist genau genug und ihr könnt mir bald helfen.
Mit freundlichen Grüßen
RoyalTS
ich schildere euch mal kurz und knapp was mein Programm tun soll und wo mein Problem liegt.
Ich habe eine Klasse Person implementiert, ihr werden im Konstruktor der vorname, der nachname und das geburtsdatum übergeben. die klasse enthält noch eine methode, die das alter der person berechnet.
nun geht es darum dass diese personen gespeichert werden sollen. allerdings kann ich irgendwie nur eine person speichern da er mir die dati immer überschreibt. im folgenden seht ihr den Code der Klasse Persistence die für das Speichern und laden verantwortlich ist:
Java:
package sourceCode;
import java.io.*;
public class Persistence implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public static void saveObject(Person person){
try{
FileOutputStream datei = new FileOutputStream("DB.dat");
ObjectOutputStream out = new ObjectOutputStream(datei);
out.writeObject(person);
datei.close();
}catch(IOException e){
System.out.println("E-Fehler save: " + e.getMessage());
}
}
public static void loadData(){
Person tempPerson;
try{
FileInputStream datei = new FileInputStream("DB.dat");
ObjectInputStream in = new ObjectInputStream(datei);
while(true){
tempPerson = (Person)in.readObject();
System.out.println(tempPerson + "\n");
}
}catch(EOFException e){
}catch(Exception e){
System.out.println("A-Fehler load: " + e.getMessage());
}
}
}
Jetzt der Quellcode der ausführenden Klasse Geburtstagskalender:
Java:
package sourceCode;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Geburtstagskalender {
public static void main(String[] args) {
GregorianCalendar tdat = new GregorianCalendar(1991, Calendar.JUNE, 6);
Person tom = new Person("Tom", "muster", tdat);
GregorianCalendar adat = new GregorianCalendar(1988, Calendar.MAY, 6);
Person alex = new Person("alex", "mann", adat);
Persistence.saveObject(tom);
Persistence.saveObject(alex);
Persistence.loadData();
}
}
die ausgabe des Programms ist dann 2mal die Daten von alex.
allerdings hätte ich natürlich gern erst die daten von tom und dann von alex.
was mache ich falsch???
Ich hoffe die Problembeschreibung ist genau genug und ihr könnt mir bald helfen.
Mit freundlichen Grüßen
RoyalTS