2016-06-05 11 views
0

Ich habe einen Tabulator getrennte Textdatei, die Text wie unten hat (der Einfachheit halber wollen wir seine die einzige Spalte in der Datei übernehmen) ....Warum werden neue Zeilenzeichen aus einer Datei gelesen, wenn OpenCSV nicht interpretiert wird?

POWER MAKER FOR SURE.\n\nGREAT THROTTLE RESPONSE 

Als ich dies in gelesen, ich will es kommen wie durch ...

POWER MAKER FOR SURE 
GREAT THROTTLE RESPONSE 

Hier ist der Code, wo ich dies mit OpenCSV CSVReader lesen ...

csv = new CSVReader(new FileReader(opt.f),'\t' as char, '|' as char, '\0' as char) 
while ((line = csv.readNext()) != null) { 
    println("Raw is ${line}") 

Beachten Sie, wie ich einen anderen Konstruktor verwendet, wo die Flucht chara cter wurde wie in this post vorgeschlagen geändert, so dass das Zeichen '\' erhalten bleibt.

Aber was gedruckt wird, ist ..

Raw is ["POWER MAKER FOR SURE.\n\nGREAT THROTTLE RESPONSE, BRRRAAAP!"] 

Warum ist die Zeilenumbrüche nicht zu interpretieren?

+0

Wo bekommen Sie 'CSVReader' aus? – Michael

+0

@Michael, import au.com.bytecode.opencsv.CSVReader – AbuMariam

+0

Also mein erster Gedanke war in Ihrer Beispiel-Zeichenfolge ist das Literalzeichen Schrägstrich gefolgt von dem Buchstaben n oder eine echte neue Zeile. Wenn es der Literal-Schrägstrich-Charakter ist, dann müssen Sie eine Art von Datei-Präprozessor haben, um sie in neue Zeilen zu verwandeln, da opencsv das nicht für Sie tun wird. –

Antwort

0

Ich denke, weil, was aus der Datei kommt, ist nicht das tatsächliche Newline-Zeichen, sondern nur der Text '\ n'. Also muss ich etwas machen wie

.replace('\\n', '\n') 
Verwandte Themen