Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe folgendes Problem. Ich habe einen Vector "vectorPartei", dieser enthällt Objekte vom Typ Partei (class Partei Code unten) und wird in einer JTable dargestellt. Meine Aufgabe verlangt nun folgendes:
Ermöglichen Sie die Berechnung der Sitzverteilung für mehrere Wahldurchläufe. Speichern Sie für jeden Wahlvorgang das Ergebnis einer Berechnung in einem Stream ab. Laden Sie (vom Stream) abgespeicherte Ergebnisse zur Darstellung zurück ins Programm (mit Auswahlmöglichkeit).
Kann mir jemand sagen wie ich vorgehen soll um den gesamten Inhalt des Vectors zu schreiben und danach wieder zu lesen ?
Ich dachte in Richtung Buffered Reader aber was ist mit der Auswahlmöglichkeit, da fehlt mir jegliche Idee !!!
Code:
class HareNiemVerfahren implements TableModel{
private Vector vectorPartei = new Vector();
Code:
class Partei {
private String strName;
private int intAnzahlMandate;
private int intAnzahlStimmen;
private double dblQuotient;
public Partei (String strName, int intAnzahlStimmen, int intAnzahlMandate, double dblQuotient) {
this.strName = strName;
this.intAnzahlStimmen = intAnzahlStimmen;
this.intAnzahlMandate = intAnzahlMandate;
this.dblQuotient = dblQuotient;
}
public String getName(){return this.strName;}
public int getStimmen(){return this.intAnzahlStimmen;}
public int getMandate(){return this.intAnzahlMandate;}
public double getQuotient(){return this.dblQuotient;}
public void setName(String Name){this.strName = Name;}
public void setStimmen(int Stimmen){this.intAnzahlStimmen = Stimmen;}
public void setMandate(int Mandate){this.intAnzahlMandate = Mandate;}
public void setQuotient(double Quotient){this.dblQuotient = Quotient;}
}
Sorry ich hab mich vieleicht falsch ausgedrückt schreiben ist nicht wirklich das Problem, ich denke ObjectOutputStream wird wohl auch passen aber was ist wenn ich sagen wir drei Wahlvorgänge auf den Stream geschrieben habe und jetzt mit Auswahlmöglichkeit wieder auslesen will. Sollte ich da ein Dialogfenster öffnen oder gib es auch einfachere Möglichkeiten?
mhm - weiß net ob ichs richtig verstanden hab aber du kannst doch einfach deinen Vector per ObjectOutputStream schreiben und dann einfach wieder einlesen ?
Code:
public void writeVector(Vector v) {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("result", true));
oos.writeObject(v);
oos.flush();
oos.close();
}
d.h. du berechnest was und schreibst dann den Vector in die Datei....
zum auslesen nimmst du dann den ObjectInputStream:
Code:
public Vector readVector() {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("result"));
Vector v = (Vector)ois.readObject();
ois.close();
return v;
}
Das Problem besteht nicht darin nur einen Auszulesen, sagen wir ich habe drei verschiedene Vectoren geschrieben jetzt möchte ich auswählen welchen dieser drei ich wieder einlese.
Das Problem besteht nicht darin nur einen Auszulesen, sagen wir ich habe drei verschiedene Vectoren geschrieben jetzt möchte ich auswählen welchen dieser drei ich wieder einlese.
Ich würde in einer Klasse alle drei auf einmal auslesen und speichern. Wenn du dann auf einen zugreifen willst greifst du über diese Klasse zu. D.h einmal alle auslesen und dann auf den entsprechenden zugreifen
Habs mal mit ObjectOutputStream und FileChooser versucht, habe auch irgendwelche Dateien geschrieben aber wenn ich diese dann wieder auslese bekomme ich irgendwie nur Blödsinn vonwegen is Vector...
zurück.