Hi zusammen,
ich arbeite an einer Software die unter anderem Datenbestände aus CSV und TXT Dateien importieren soll.
Die TXT Dateien sind per Tabulator getrennt und die Werte stehen in "". Bei den CSV Dateien sind die Werte per Semicolon getrennt, Umfassende Zeichen gibt es nicht.
Zum Parsen verwende ich die Bibliothek opencsv 2.3.
Das Parsen der TXT Dateien funktioniert soweit auch ziemlich gut. Beim Parsen der CSV passieren jedoch immer wieder Fehler. Meist äußert sich das darin das irgendwo mittem im Datensatz ein Spalte übersprungen wird und die folgenden Werte nicht mehr in der richtigen Spalte stehen.
Dabei ist der verwendete Code sehr simpel und ähnlich dem, was ich in einem entsprechendem Beispiel gefunden habe.
Die ersten drei Zeilen einer CSV Datei werden übersprungen, der rest wird in ein StringArrey geschrieben. Von dem aus arbeite ich dann hinterher weiter.
Mach ich da irgendetwas falsch?
Gibt es da vielleicht eine Bibliothek die besser funktioniert bzw. mit der ihr gute Erfahrungen gemacht habt?
Außerdem bin ich mir nicht ganz sicher welchen Zeichensatz die Dateien verwenden. Gibt's da eine einfache Möglichkeit das raus zu bekommen?
Jede Hilfe wäre echt klasse!
Sören
ich arbeite an einer Software die unter anderem Datenbestände aus CSV und TXT Dateien importieren soll.
Die TXT Dateien sind per Tabulator getrennt und die Werte stehen in "". Bei den CSV Dateien sind die Werte per Semicolon getrennt, Umfassende Zeichen gibt es nicht.
Zum Parsen verwende ich die Bibliothek opencsv 2.3.
Das Parsen der TXT Dateien funktioniert soweit auch ziemlich gut. Beim Parsen der CSV passieren jedoch immer wieder Fehler. Meist äußert sich das darin das irgendwo mittem im Datensatz ein Spalte übersprungen wird und die folgenden Werte nicht mehr in der richtigen Spalte stehen.
Dabei ist der verwendete Code sehr simpel und ähnlich dem, was ich in einem entsprechendem Beispiel gefunden habe.
Java:
CSVReader reader = new CSVReader(new FileReader(path + "/temp/ebay.csv"), ';');
String[] array = new String[60];
reader.readNext();
reader.readNext();
reader.readNext();
while ((array = reader.readNext()) != null) {
int miCount = 0;
int miCount2 = 1;
while (miCount < 37){
System.out.println("Spalte " + miCount2 +": '"+ array[miCount] +"'");
miCount2++;
miCount++;
}
Mach ich da irgendetwas falsch?
Gibt es da vielleicht eine Bibliothek die besser funktioniert bzw. mit der ihr gute Erfahrungen gemacht habt?
Außerdem bin ich mir nicht ganz sicher welchen Zeichensatz die Dateien verwenden. Gibt's da eine einfache Möglichkeit das raus zu bekommen?
Jede Hilfe wäre echt klasse!
Sören
Zuletzt bearbeitet: