2016-04-25 7 views
0

Ich habe .csv Datei, die angegebenen WerteCSVFormat.RFC4180 ignoriert Werte in CSV-Datei zitiert

Gender,ParentIncome,IQ,ParentEncouragement,CollegePlans 
"Male",53900,118,"Encouraged","Plans to attend" 
"Female",24900,87,"Not Encouraged","Does not plan to attend" 
"Female",65800,93,"Not Encouraged","Does not plan to attend" 

Lesen Sie diese Datei mit dem folgenden Code (unter Verwendung von IntelliJ und Beobachten Werte im Debugger), gibt Werte ohne Anführungszeichen hat .

@Override 
    public CsvConnectorService read(String fullFileName, String outputAddress, int intervalMs, boolean repeat, 
            Handler<AsyncResult<Void>> result) { 
     CSVFormat format = CSVFormat.RFC4180.withHeader().withIgnoreEmptyLines().withQuote('"'); 

     Subscription subscription = createCsvObservable(fullFileName, format, intervalMs, repeat) 
       .subscribeOn(Schedulers.io()) 
       .subscribe(record -> 

         eventBus.publish(outputAddress, convertRecordToJson(record))); 

     subscriptions.add(subscription); 

     result.handle(Future.succeededFuture()); 
     return this; 
    } 

mit .withQuote('"'); oder ohne sie zu lesen, macht keinen Unterschied.

Antwort

1

Das Zitat " ist das Standardzeichen zur Darstellung von Feldern in Anführungszeichen, und die explizite Einstellung macht keinen Unterschied.

Möchten Sie die ursprünglichen Anführungszeichen erhalten? Versuchen Sie in diesem Fall, das Zitat auf ein Zeichen zu setzen, das nicht im Text vorkommt, z. B. .withQuote('\0');

Verwandte Themen