操作csv文件,解析内容保存到数据库

在开发中,经常要对csv文件进行操作

csv文件简介

CSV 即 Comma Separate Values ,是一种纯文本格式,用来存储数据。这种文件格式经常用来作为不同程序之间的数据交互的格式。可以用execl打开,也可以用记事本来打开。CSV 文件格式, 每条记录占一行,每一列用","来隔开。

比如我要操作的文件就是由||隔开的

操作csv文件,解析内容保存到数据库_第1张图片

 我要做的就是解析每一行数据,把每一行封装成一个投诉信息,然后保存到数据库。

代码示例

首先创建一个实体类来匹配每一行数据

读取csv文件,然后读取一行数据,将一行数据根据||来切割,并且去掉前后的多余的空格,然后依次赋值给实体类

String localFile = "F:\\testDir\\ywts_anhui_zt_20230728_1630.csv";
//从本地里获取文件
File csv = new File(localFile);
//第二步:从字符输入流读取文本,缓冲各个字符,从而实现字符、数组和行(文本的行数通过回车符来进行判定)的高效读取。
BufferedReader textFile = new BufferedReader(new FileReader(csv));
//第一行信息,为标题信息,不用直接过滤掉
textFile.readLine();
String lineDta = "";
List complaintList = new ArrayList<>();

//第三步:将文档的下一行数据赋值给lineData,并判断是否为空,若不为空则输出
while ((lineDta = textFile.readLine()) != null) {
      System.out.println(lineDta);
      String[] item = lineDta.split("\\|\\|");
      for (int j = 0; j < item.length; j++) {
           String trimStr = item[j].trim();
           item[j] = trimStr;
      }
    UnicomComplaint unicomComplaint = new UnicomComplaint();
    //将item的每一个元素依次赋值给实体类
    complaintList.add(unicomComplaint);
}
//批量导入到数据中
cellInfoMapper.insertUnicomComplaintsBatch(complaintList);

你可能感兴趣的:(数据库)