Lineseperator für OpenCSV setzten

xrax

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes Problem.

Beim auslesen einer CSV mit OpenCSV erkennt der Reader ein Zeilenende wo keines ist.
Sobald ich irgendwo ein Komma im File habe, bricht das Programm an dieser Stelle die Zeile ab. Solange kein Komma kommt gehts wunderbar.
Das ist ein Ubuntu-System und ich denke die Lines enden mit ( \n ). Kann ich dem Reader nun iwie sagen das nur bei einem \n die Zeile zuenden ist ?

Java:
Reader readerSource = new InputStreamReader(new FileInputStream(sourceFile), "ISO-8859-1");

csvReaderSource = new CSVReader(readerSource);

    while((nextRecord = csvReaderSource.readNext()) != null)
      { .... }

Besten Dank
Xrax
 
Zuletzt bearbeitet:

xrax

Erfahrenes Mitglied
Der Erzeuger der CSV benutzt das. Also benutz ich's auch. Mit der Frage hat Deine Antwort aber nix zu tun . :)
 

Technipion

Erfahrenes Mitglied
Mit der Frage hat Deine Antwort aber nix zu tun .
Sag das nicht so schnell. Du wärst überrascht wie oft die Enkodierung sich schon als Ursache allen Übels entpuppt hat. Deshalb wittere ich immer sofort Gefahr wenn ich ISO-... sehe statt UTF-8.

Ist natürlich jetzt eine gute Frage warum es nicht funzt.
Das ist ein Ubuntu-System und ich denke die Lines enden mit ( \n ). Kann ich dem Reader nun iwie sagen das nur bei einem \n die Zeile zuenden ist ?
Auch das ist zu vorschnell. Gerade wenn du schon Latin_1 verwendest können die Zeilenenden auch sehr gut '\r\n' sein.

Am besten lädst du mal deine CSV-Datei hoch, dann können wir sie uns genauer ansehen. Falls was persönliches drin steht kannst du sie ja kürzen, oder mit Kauderwelsch füllen.

Gruß Technipion

PS: Hier noch etwas für den interessierten Leser: Guckst du.
 

xrax

Erfahrenes Mitglied
Hi Technipion, vielen Dank für das Angebot.

Aber ich kann mir beim besten Willen nicht vorstellen das wir bei der Analyse des Files etwas finden.

Mein Testablauf:
1.) Ich habe das CSV ohne komma durchlaufen lassen und alles war gut.
2.) Ich habe das CSV im vim geöffnet und in einer Zelle den Text geändert. Einfach ein komma reingesetzt. Das Programm brach am komma ab. Sah dies als Zeilenende an.
3.) Ich habe das komma wieder raus gemacht und dann gings wieder.

Ich denke eher das im OpenCSV das komma als default für Zeilenende verzeichnet ist. Wenn kein Komma kommt nimmt er \n. So meine Theorie.

Darum auch meine Frage, - wie ich im OpenCSV das Zeilenende vorgeben kann.

Wenn das niemand weis dann muss ich wohl alle kommas aus der csv entfernen. Wäre aber echt gemurkse.

Frohe Ostern
xrax