怎么解析UTF-8带BOM的csv文件并转成javabean对象?

代码来源:https://blog.csdn.net/qq_21084687/article/details/84333188

如何在此基础上,解析UTF-8带BOM的csv文件并转成javabean对象?

使用UnicodeReader

https://blog.csdn.net/zh_fn/article/details/22380055
https://blog.csdn.net/jianglinghao123/article/details/50922996

public class CsvUtil {
    /**
     * 日志对象
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(CsvUtil.class);

    /**
     * 解析csv文件并转成bean
     * @param file csv文件
     * @param clazz 类
     * @param <T> 泛型
     * @return 泛型bean集合
     */
    public <T> List<T> getCsvData(MultipartFile file, Class<T> clazz) {
        BOMInputStream in; //这里
        try {
            in = new BOMInputStream(file.getInputStream(), Charset.forName(GBK")); //这里,如果是别的编码,这里照着修改下
        } catch (Exception e) {
            LOGGER.error(Constant.LOG_FOMAT_TYPE_TWO,
                    ErrorCode.FILE_LOAD_ERROR.getErrorCode(),
                    ErrorCode.FILE_LOAD_ERROR.getMessage(),
                    e.getMessage());
            throw BaseException.of(ErrorCode.FILE_LOAD_ERROR.of());
        }

        HeaderColumnNameMappingStrategy<T> strategy = new HeaderColumnNameMappingStrategy<>();
        strategy.setType(clazz);

        CsvToBean<T> csvToBean = new CsvToBeanBuilder<T>(in)
                .withSeparator(',')
                .withQuoteChar('\'')
                .withMappingStrategy(strategy).build();
        return csvToBean.parse();
    }
}