我有一个CSV文件,第一行有标题。我想将其转换为List<Map<String, String>>
,其中列表中的每个Map<String, String>
表示文件中的一条记录。映射的键是标题,值是字段的实际值。
目前我的代码如下:
BufferedReader br = <handle to file>;
// Get the headers to build the map.
String[] headers = br.lines().limit(1).collect(Collectors.toArray(size -> new String[size]));
Stream<String> recordStream = br.lines().skip(1);
我应该对 recordStream
进行哪些操作,才能将其转换为 List<Map<String, String>>
?
示例 CSV 文件如下:
header1,header2,header3 ---- Header line
field11,field12,field13 ----> need to transform to Map where entry would be like header1:field11 header2:field12 and so on.
field21,field22,field23
field31,field32,field33
最后,所有这些地图需要被收集到一个列表中。
br.readLine()
调用来检索标题行,然后通过br.lines().stream ops
处理剩余行。 - Holger