0

我有.csv引用值的文件

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"

使用以下代码读取此文件(使用 IntelliJ 并在调试器中观察值),返回不带引号的值。

@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;
    }

有没有读.withQuote('"');,没有区别。

4

1 回答 1

1

引号"是表示引用字段的默认字符,明确设置它没有区别。

你想得到原始的引号字符吗?在这种情况下,请尝试将引号设置为文本中未出现的字符,例如.withQuote('\0');

于 2016-04-27T02:43:37.357 回答