从csv文件中读取记录头 - java

时间:2015-03-19 11:09:29

标签: java csv

我有一个csv文件,如下所示:

Field 1    field 2                             field 3             
TestData   MARTIN,12/2/2/2:JOHN 12/2/2      2015/12/12

我想从field 2中提取名称,例如MartinJohn。我在文件中读到并按,拆分。这并不完全有效,因为field 2内部包含逗号并将其拆分。是否有解决方法或从特定单元格中提取数据的方法(例如,只是从文件中提取所有字段2)?

3 个答案:

答案 0 :(得分:0)

通常,如果CSV上的字段包含逗号,则需要引用它们。所以一行应该是这样的:

TestData,"MARTIN,12/2/2/2:JOHN 12/2/2",2015/12/12是一个合适的CSV。

您确定没有TSV(制表符分隔值)文件吗?在这种情况下,您可以拆分执行

String[] fields = line.split('\t')
String[] persons = split(1).split(',')

答案 1 :(得分:0)

处理CSV文件的最佳方法是使用CSV库。我使用OpenCSV http://opencsv.sourceforge.net/但还有其他人。 OpenCSV可以很好地处理转义逗号,以及读取标题等。它还处理制表符分隔文件。

答案 2 :(得分:0)

包含逗号的字段应在CSV中引用,包含引号的字段将使其被另一个引号转义。例如:

"here's a comma, and some ""quoted text"" as well"

然而,CSV"格式"有点噩梦,with no proper specification

我不建议在good ones already exist时尝试编写自己的解析器。