OpenCSV看不到CSV文件中存在的列



我试图使用OpenCSV读取CSV到POJO。当我尝试解析CSV时,我得到以下错误:

Header is missing required fields [LAST NAME]. The list of headers encountered is [Last Name,First Name,User Name,Email,Roles].

我不确定为什么会发生这个错误,因为'姓氏'列存在于CSV文件中。

CSV为:

Last Name,First Name,User Name,Email,Roles
Test1,Test2,Test3,Test4,Test5

POJO类是:

@NoArgsConstructor
@Getter
public class SimpleUser {
@CsvBindByName(column = "First Name", required = true)
private String firstName;
@CsvBindByName(column = "Last Name", required = true)
private String lastName;
@CsvBindByName(column = "Email", required = true)
private String email;
@CsvBindByName(column = "User Name", required = true)
private String userName;
@CsvBindAndSplitByName(column = "Roles", elementType = Double.class, collectionType = LinkedList.class)
private List<String> roles;
}

OpenCSV代码是:

private List<SimpleUser> getCsvUsersFromCsv(String fileLocation) {
MappingStrategy<SimpleUser> strategy = new FuzzyMappingStrategyBuilder<SimpleUser>().build();
strategy.setType(SimpleUser.class);
try (Reader reader = new FileReader(fileLocation)) {
return new CsvToBeanBuilder(reader)
.withMappingStrategy(strategy)
.build()
.parse();
}
}

上面我使用了FuzzyMappingStrategyBuilder只是为了看看它是否会改变任何东西,但没有。

如有任何帮助,不胜感激。

我使用的是OpenCSV版本5.5和Java 8。

我发现在我的csv文件中有一个隐藏字符。在使用新文件进行测试后,它按预期工作。

相关内容

  • 没有找到相关文章

最新更新