首先来说说解决问题的思路,先创建一个类Test来接收csv文件中的内容,然后通过解析csv文件,讲内容转换为List<Test>返回,话不多说,上代码。
1.我的csv文件
2.我的Test类文件
public class Test extends BaseEntity{
//csv
private String code;
private String num;
}
3.准备csv转换工具类ReadCsv
package com.beiqisoft.rfidsys.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import com.beiqisoft.rfidsys.entity.CodeNum;
public class ReadCsv {
/**
* 读取csv文件用list对象存储的公共调用方法
* @param inpath csv文件存储路径
* @return 返回List<taskRule>对象
*/
public static List<CodeNum> readCsv(String inpath) {
List<CodeNum> list = new ArrayList<CodeNum>(); // 保存读取到的CSV数据
try {
File file = new File(inpath); // 判断文件是否存在
if (file.exists()) {
BufferedReader reader = new BufferedReader(new FileReader(inpath)); // 读取CSV文件
String line = null;// 循环读取每行
while ((line = reader.readLine()) != null) {
String[] row = line.split("\\|", -1);
String[] rows=row[0].split(",");
CodeNum infos = new CodeNum();
infos.setCode(rows[0]);
infos.setNum(rows[1]);
list.add(infos);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
4.写一个方法,传输文件地址,调用工具类即可
public List<Test> csvtoList(String fileurl){
String inpath="C:\\wb.csv";
List<CodeNum> list=ReadCsv.readCsv(inpath); //调用ReadCsv里的方法读取csv文件里的内容,返回对象是List<taskRule>
if(list.size()>0) {
list.remove(0);
return list;
}
return null;
}
5.执行结果