CSV Dateien bearbeiten
-
Hallo,
ich möchte gerne CSV-Dateien einlesen und aus den Werten einiger Spalten eine neue Spalte berechnen und der CSV-Datei hinzufügen.
Das Einlesen ist kein Problem.
Mein Problem ist in welcher Datenstruktur ich dieses abspeichere um damit möglichst bequem in JAVA arbeiten zu können.
Was mir als erstes einfällt ist natürlich eine ArrayList in der jeder Eintrag eine neue ArrayList ist bzw. ein Vector mit Elementen der Klasse Vector als Eitrag.
Damit ist das arbeiten jedoch sehr umständlich und ich hoffe, dass es hier jemanden gibt, dem eine bessere Lösung einfällt.
-
was ist daran schwer?
mMn hast du 3 möglichkeiten:
list in list, matrix, map
list.get(0).get(0); matrix[0][0]; map.get("A1");
-
Schwer ist es zwar nicht, aber doch äußerst umständlich.
Zuerst musst Du in der ersten Zeile nach dem Namen der Variablen suchen und Dir die Nummer ausgeben lassen und dann erst kannnst Du Zeile für Zeile durchgehen und Dir die Werte ausgeben lassen (die übrigens alle noch in das entsprechende Format konvertiert werden müssen).
Mir wäre es am liebsten, wenn man die Spalte direkt über deren Name aufrufen könnte.
z.B. mit einer methode
public String[] getRow(String "rowName");
oder eine Spalte hinzufügen mit
public void addRow(String "newRowName", String[] rowEntries);
oder eine Spalte löschen mit
public void removeRow(String "rowName");Korrigiere mich, wenn ich falsch liege, bei einer Matrix, müsste ich beim einfügen einer neuen Spalte jedesmal eine zweite größere Matrix erstellen, und alle Elemente in die neue Matrix kopieren. Das dürfte wohl eher ausscheiden, da dies i.a. ziemlich teure Operationen sind.
Mir ist schon klar, dass ich mir selbst eine entsprechende Klasse schreiben muss, ich könnte mir aber eine angenehmere Ausgangslage vorstellen.
-
ich kann mich nur wiederholen. ich versteh nicht wo das problem ist. wenn du die oben genannten methoden haben willst schreib sie dir. wenn du dich entschließt eine matrix zu verwenden und du glück hast gibt es eventuell jemanden der bereits eine matrixutils klasse geschrieben hat
irgendwer hat sich auch mal irgendwann hingesetzt und sich die klasse ArrayList "ausgedacht". wenn du der meinung bist die reicht dir nicht oder ist schlecht schreib deine eigene. es hindert dich niemand daran! schreib deine klasse MyMatrix mit all den methoden die du für notwendig erachtest
ich hab irgendwie leicht das gefühl du stellst dir vor man müsste das in 2 zeilen code lösen können ala
Problem b = new Problem(); ProblemSolver.solveMyProblem(b);
alles andere ist schon viel zu umständlich ...
-
Evtl. sucht der Fragesteller nach einer eingebetteten Datenbank. Ließ die Daten ein, schiebe sie nach JavaDB oder H2 und dann kannst du z.B. schreiben
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
-
Erfinde das Rad nicht neu http://sourceforge.net/projects/javacsv/