1、引入 maven 依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.9.0</version>
</dependency>
2、java 代码
public List<Map<String, String>> resolveData(String filePath, String charsetName) {
try {
FileInputStream fileInputStream = new FileInputStream(filePath);
InputStreamReader reader = new InputStreamReader(fileInputStream, charsetName);
CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT);
int headerFlag = 0;
Map<Integer, String> headerMap = new HashMap<>(16);
List<Map<String, String>> dataMapList = new ArrayList<>(10);
for (CSVRecord record : parser) {
if (headerFlag == 0) {
int headerIndex = 0;
Iterator<String> headerIterator = record.stream().iterator();
while (headerIterator.hasNext()) {
headerMap.put(headerIndex, headerIterator.next());
headerIndex++;
}
headerFlag = 1;
} else {
Map<String, String> rowDataMap = new HashMap<>(16);
Iterator<String> dataIterator = record.stream().iterator();
int dataIndex = 0;
while (dataIterator.hasNext()) {
String headerName = headerMap.get(dataIndex);
rowDataMap.put(headerName, dataIterator.next());
dataIndex++;
}
dataMapList.add(rowDataMap);
}
}
return dataMapList;
} catch (Exception e) {
throw new RuntimeException(e);
}
}