将CSV文件数据转换为List的工具类

一、导入OpenCSV的jar包
<dependency>
	<groupId>com.opencsv</groupId>
	<artifactId>opencsv</artifactId>
	<version>5.6</version>
</dependency>
二、创建csv文件解析工具类
public class CsvUtils {
    /**
     * 获取CSV文件数据
     * @param filePath csv文件所在的路径
     * @param clazz 按文件标题映射的类,属性使用注解@CsvBindByName(column = "xxx")
     * @return 返回解析后的数据集合
     * @param <T>
     */
    public static <T> List<T> getCsvData(String filePath, Class<T> clazz) {
        InputStreamReader in;
        CsvToBean<T> csvToBean;
        try {
            in = new InputStreamReader(Files.newInputStream(Paths.get(filePath)), StandardCharsets.UTF_8);
            HeaderColumnNameMappingStrategy<T> strategy = new HeaderColumnNameMappingStrategy<>();
            strategy.setType(clazz);
            csvToBean = new CsvToBeanBuilder<T>(in).withMappingStrategy(strategy).build();
        } catch (Exception e) {
            return null;
        }
        return csvToBean.parse();
    }
}
三、编写csv文件列标题的映射对象
1. csv文件示例
user name,userAge,user-sex
张三,18,男
田七,19,女
2. 映射类
/**
 * @author xxx
 * @date xxxx-xx-xx
 * @description CSV文件标题映射对象
 * 这是一个示例
 */
public class UserInfoCsvBO {

    @CsvBindByName(column = "user name")
    private String name;

    @CsvBindByName(column = "userAge")
    private String age;

    @CsvBindByName(column = "user-sex")
    private String sex;
    
}
四、使用工具类
private static final String CSV_FILE_PATH = "/home/data/csv/csv_test.csv";

/**
*获取用户信息CSV文件的数据
*/
public List<UserInfoCsvBO> getUserInfo(){
	return CsvUtils.getCsvData(CSV_FILE_PATH, UserInfoCsvBO.class);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值