超级CSV(Java) - 读取列名称中包含空格的文件

Jus*_*yer 5 java csv supercsv

我正在使用Super CSV,它看起来像一个惊人的包.

我唯一担心的是如何使用名称中带空格的列.不,我不能回去自己删除空格.这些文件将由数百个提供给我,我没有时间返回并修复每个文件的所有60列,我不能相信其他人正确地做到这一点.

如何使用标题中带有空格的列(即"名字"而不是"FirstName"或"firstName")?

谢谢!

有关编码样本,请查看此处:http://supercsv.sourceforge.net/codeExamples_general.html

max*_*llb 5

您会在链接到的示例中注意到这一行:

final String[] header = inFile.getCSVHeader(true);
Run Code Online (Sandbox Code Playgroud)

这应该给您您的列名,不是吗?

http://supercsv.sourceforge.net/javadoc/index.html

我想我现在明白你的问题了。传递给read函数的String []参数采用您要读取的类的属性名称。它是位置性的,因此不必像标题一样命名。因此,例如,您可以具有String[] header = inFile.getCSVHeader(),但是具有的映射headerName->propertyName,因此,如果您的标头字段为:

First Name, Last Name, Age
Run Code Online (Sandbox Code Playgroud)

但是你的课是

getFirstName(), setFirstName(...);
getLastName(), setLastName(...);
getYears(), setYears();
Run Code Online (Sandbox Code Playgroud)

传递给read方法没有(String[]) {"First Name", "Last Name", "Age"},因为你的头是,但传递到read,一个(String[]) {"FirstName", "LastName", "Years"}阵列。