Java处理CSV文件示例
1. 导入依赖
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.10.0</version></dependency>
文件示例
下面是示例文件文件数据
vscode和idea都有解析CSV文件的插件, 通过不同的颜色或者网格区分. 建议下载一个
vscode建议使用: Edit CSV
idea建议使用: Big Data Tools
2.示例代码
@Testpublic void importData() {// 指定文件路径try (FileReader fileReader = new FileReader("D:\\xxx\\data.csv");CSVParser csvParser = new CSVParser(fileReader, CSVFormat.DEFAULT)) {// 获取每一行记录List<CSVRecord> records = csvParser.getRecords();// 待导入数据暂存列表List<SysModelData> list = new ArrayList<>();for (int i = 1; i < records.size(); i++) {String[] v = records.get(i).values();// 获取对应列的数据String lon = v[6];String lat = v[7];String ph = v[28];String yjz = v[29];String yjzc = v[30];String n = v[32];String nquan = v[31];String k = v[33];String slowK = v[34];String fastK = v[35];String p = v[36];String time = v[38];SysModelData build = SysModelData.builder().latitude(new BigDecimal(lat)).longitude(new BigDecimal(lon)).ph(Double.parseDouble(ph)).yjz(Double.parseDouble(yjz)).yjzc(Double.parseDouble(yjzc)).nquan(Double.parseDouble(nquan)).njianjie(Double.parseDouble(n)).k(Double.parseDouble(k)).kslow(Double.parseDouble(slowK)).kfast(Double.parseDouble(fastK)).p(Double.parseDouble(p)).val18(1.0).build();list.add(build);// 得到数据列表之后可以随意操作, 我这里是导入数据库// 导入的时候建议采用批量导入, 效率较高if (list.size() % 5000 == 0) {sysModelDataMapper.insertList(list);list.clear();}}// 导入剩余数据sysModelDataMapper.insertList(list);} catch (IOException | ParseException e) {e.printStackTrace();}}
可以发现这个工具的作用就是方便于你打开文件以及返回你每一列的数据并帮您处理。 只需要专注每一列的数据的数据即可