Java 使用OpenCsv将CSV元素映射到字符串列表?
我有一个由单个空格字符分隔的CSV文件,如下所示-Java 使用OpenCsv将CSV元素映射到字符串列表?,java,csv,opencsv,Java,Csv,Opencsv,我有一个由单个空格字符分隔的CSV文件,如下所示- <HEADING ROW> a b c,d,e,f m n o,p,q 所以这个对象中的所有字段都是不同类型的,尤其是最后一个字段,它是列表类型的,可以是任何非零长度。 以下是我将CSV文件映射到这些对象列表的代码: public List<Foo> readCsvFromPath(final String filePath) throws IOException { try (Reader r
<HEADING ROW>
a b c,d,e,f
m n o,p,q
所以这个对象中的所有字段都是不同类型的,尤其是最后一个字段,它是列表类型的,可以是任何非零长度。
以下是我将CSV文件映射到这些对象列表的代码:
public List<Foo> readCsvFromPath(final String filePath) throws IOException {
try (Reader reader = Files.newBufferedReader(Paths.get(filePath));) {
CsvToBean<Foo> csvToBean = new CsvToBeanBuilder<Foo>(reader)
.withSeparator(' ')
.withType(Foo.class)
.build();
return csvToBean.parse();
}
}
public List readCsvFromPath(最终字符串文件路径)引发IOException{
try(Reader=Files.newbuffereder(path.get(filePath));){
CsvToBean CsvToBean=新的CsvToBeanBuilder(读卡器)
.带分离器(“”)
.withType(食品类)
.build();
返回csvToBean.parse();
}
}
这里我不确定的是,CSV文件的最后一个元素,即“c,d,e,f”或“o,p,q”如何分别映射到列表中,如{“c”,“d”,“e”,“f”}
和{“o”,“p”,“q”}
?可以使用
替换此代码
@CsvBindByName(column=“heading3”,必需=true)
私人名单第四;
与
@CsvBindAndSplitByName(column=“heading3”,required=true,elementType=String.class,splitOn=“,”)
私人名单第四;
public List<Foo> readCsvFromPath(final String filePath) throws IOException {
try (Reader reader = Files.newBufferedReader(Paths.get(filePath));) {
CsvToBean<Foo> csvToBean = new CsvToBeanBuilder<Foo>(reader)
.withSeparator(' ')
.withType(Foo.class)
.build();
return csvToBean.parse();
}
}