Börsenanalyseprogramm mit ArrayList<BufferedWriter>

james_no

Mitglied
Liebes Forum,
für ein Schulprojekt schreibe ich mit zwei anderen ein Börsenanalyseprogramm (DAX) in Java.
Die Daten werden mit JSoup aus dem Internet geholt, dann in eine ArrayList gespeichert und sollen nun als letzten Schritt in Textdateien gespeichert werden (jede Aktie hat eine eigene Textdatei, also insgesamt 30 Dateien).
Um das ganze zu schreiben habe ich mit eine ArrayList mit BufferedWritern zugelegt, um dort alle unterzubringen und dann aufzurufen. Das speichern der Daten funktioniert auch einwandfrei aber ich bekomme es einfach nicht hin, die Daten in die Datei zu speichern (die Datei soll nur einmal erstellt und danach nur noch aktualisiert werden).
Liebe Grüße
P.S.: soll ich den Code als .java-Datei dazu hochladen?
 
Okay also erstmal: die Analyse der Daten ist in diesem Projekt nicht meine Aufgabe, deswegen habe ich mich damit nicht befasst 😀
Und hier der Code, zuerst
Code:
ArrayList<BufferedWriter> writerList = new ArrayList<>();
und dann das hier (list ist dabei die ArrayList mit Daten und an den Indices 0, 2, 4, ... sind die Namen der Aktie und alle ungeraden Indices beinhalten die Werte, die ich in die Textdateien schreiben will)
Code:
for (int i = 0; i < list.size(); i += 2) {
            try {
                String temp = list.get(i) + ".txt";
                writerList.add(new BufferedWriter(new FileWriter(temp)));
                writerList.get(i/2).write("test");
                writerList.get(i/2).newLine();
            } catch (IOException e) {
                System.out.println(e.toString());
            }
        }
        for (int i = 0; i < writerList.size(); i++) {
            try {
                writerList.get(i).write(list.get((i+1)+i));
                writerList.get(i).newLine();
                writerList.get(i).write(list.get((i+1)+i));
            } catch (IOException e) {
                System.err.println("Error during refresh-process: " + e.toString());
            }
        }
 
Achherrje, da wird
  1. BufferedWriters in eine Liste gesteckt,
  2. wild mit Listenindices gefummelt....
Java:
ArrayList<File> fileList = new ArrayList<>();
for (aktie : aktien) {
  fileList.add(new File(..aktie..));
}
for (int i = 0; i < fileList.size(); i++) {
  try (BufferedWriter writer = new BufferedWriter(..fileList.get(i)..)) {
    for (entity : aktien.get(i)..) {
      writer.write(entity.toString());
      writer.wirte("\n");
    }
  }
}
 
Kommt darauf an, wie deine Klasse "Aktie" aussieht, deren Objekte in der Liste list liegen.
Oder ob alles String-basiert ist. Oder ob du das hier einstellen darfst.
Im Momente ist es etwas Raten. Es darf auch mal jemand anderes ewas dazu schreiben....
(Da kommen bestimmt noch Antworten)
 
Aber mit "entity" ist keine spezielle Notation oder Pseudocode gemeint! Damit sei (mehr oder weniger) kleinstmögliche Einheit gemeint.
.. steht für von dir vorzunehmende Ergänzungen...
 
Okay, vielen Dank für die Antwort!
Ich habe das jetzt so ähnlich gelöst, funktioniert jetzt prinzipiell
Java:
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileList.get(i)))){
       writer.write(tempStorage[i]);
       writer.newLine();
       writer.write(list.get(i+1+i));
} catch (IOException e) {
       System.err.println("Error while writing to files: "+e.toString());
}
Allerdings habe ich jetzt das Problem, dass die Textdateien jedes Mal neu erstellt werden und damit bei jedem Programmneustart alles Vorherige weg ist...
Irgendwelche Vorschläge?
Viele Grüße
James
 
Das ganze sieht immer noch nach "mit Indices rumfummeln" aus, aber ohne deine Abstraktion von "Aktienkurs" zu kennen, kann ich keine bessere Method anbieten.
Zu deiner Frage: API Dokumentation von FileWriter lesen und den Konstruktor mit dem zusätzlichen Boolean Parameter verwenden.
 
Zuletzt bearbeitet:
Ist schon OK so. Klar gibt es auch andere Methodik, Technik, Systematik - aber darauf will ich nicht hinaus.

Damit man verstehen kann, was los ist, erwarte ich jetzt eine natürlichsprachliche Umschreibung mit wiedermals 2000-3000 Wörtern. 😉

Vorher ist mir gar nicht klar, um was es geht. Zum Bleistift die Klasse Aktie - völlig unbekannt. 🙁
 
Ich wuerde das Rad nicht immer neu erfinden. Yahoo bietet dafuer schon ein recht gutes API an, womit man alles moegliche mit Aktien anfangen kann.
 

Zurück
Oben