Ich habe mir bereits andere Probleme angesehen, aber ich glaube nicht, dass eines davon zu meinem passt. Die Essenz meines Programms besteht darin, eine HashMap
von Aktien zu erstellen (der Schlüssel ist das Kennzeichen und der Wert ist ein Stock
-Objekt) und dann beim Beenden des Programms die HashMap
in eine Textdatei zu exportieren. Das nächste Mal, wenn ich das Programm ausführe, würde ich die HashMap
einlesen und das Programm fortsetzen. Bisher funktionieren alle meine anderen Funktionen und ich kann mir die Textdatei ansehen, nachdem ich das Programm ausgeführt habe, und ich sehe etwas Code darin, aber wenn ich das Programm erneut ausführe, wird die Textdatei gelöscht.
Ich vermute, dass wenn ich ein neues FileInputStream
und ObjectInputStream
deklariere, sie irgendwie die Informationen in dieser Textdatei löschen und sie leer machen.
Mein Code lautet wie folgt:
stockInfo = new HashMap(10000);
Scanner in = new Scanner(System.in);
File file = new File("mp4output.txt");
fos = new FileOutputStream(file);
oos = new ObjectOutputStream(fos);
fis = new FileInputStream(file);
ois = new ObjectInputStream(fis);
So deklariere ich meine Ein-/Ausgabe-Ströme, um die hashMap einzulesen.
Dann versuche ich tatsächlich die hashMap einzulesen mit
try {
while (fis.available() > 0) {
Stock test = (Stock) ois.readObject();
System.out.println("Aktie: " + test.getCompany());
System.out.println("Hoch: " + test.getHigh());
System.out.println("Volumen: " + test.getHigh());
System.out.println("Tief: " + test.getLow());
System.out.println("Schließen: " + test.getClose());
System.out.println("Öffnen: " + test.getOpen());
System.out.println("Bereich: " + test.getRange());
System.out.println("Durchschnittliche 52 Wochen: " + test.getFiftyAvg());
System.out.println("Aktueller Preis: " + test.getcurrentPrice());
}
}
catch (Exception ex) {
ex.printStackTrace();
}
Es wird jedoch nie ausgeführt, weil fis.available()
immer 0
zurückgibt, da die Datei sich selbst leert.
Ich habe das Gefühl, dass ich irgendwo einen sehr dummen Fehler gemacht habe, aber ich kann ihn nicht finden. Jede Hilfe wäre willkommen!