2017-02-21 89 views
0

我需要解析可能包含引用多行字符串像下面CSV文件:解析CSV加引号的多串

ID;Name;Password;address; phoneNum  
1; "userName"; "userPassword"; "user \n 
    address"; 1234523423 

我通过共享CSV库的功能,这似乎满足大多数要求看,但它不如果引号没有关闭,似乎没有选项可以读取下一行。

显然,如果需要使用单引号,应该用一对额外的双引号进行筛选。

+1

恕我直言,这应该永远不会是_option_。这就是CSV被解析的方式。 – Joey

+2

[测试](https://github.com/apache/commons-csv/blob/master/src/test/java/org/apache/commons/csv/CSVParserTest.java#L68-L70)似乎表明,这可以直接使用(因为它应该)。 – Joey

回答

1

它应该工作得很好,除非库中存在一些错误或配置错误。但是,您的密码可能会出现未经转义/未加密的引用字段,而且这些字段的写法不正确。

如果出现这种情况,请尝试univocity-parsers,因为它有many different options可正确处理未转换/未关闭的引号。它比Commons CSV快4倍。

信息披露:我是该图书馆的作者。

+0

获得1Gb csv文件,包含未转义的引号和多行值。非常感谢@ jeronimo-backes为他的[univocity-parsers](http://www.univocity.com/pages/parsers-tutorial)。小内存占用,灵活的设置,友好的支持。 –