You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCSV分隔符设置无效?如何正确修改自定义分隔符

解决CsvToBeanBuilder分隔符不生效的问题

你代码里已经调用了withSeparator('|')但仍用逗号分隔,通常是这几个原因导致的,对应解决方法:

  • 检查实体类注解配置
    如果你的CsvProductDto类使用了@CsvBindByName或@CsvBindByPosition这类注解,要确认注解里是否硬编码了分隔符参数。比如注解里写了separator = ','会覆盖Builder的设置,要么去掉该参数,要么把注解里的分隔符改成'|',和Builder保持一致。

    错误示例:

    @CsvBindByName(separator = ',')
    private String productName;
    

    修正后:

    @CsvBindByName
    private String productName;
    // 或者
    @CsvBindByName(separator = '|')
    private String productName;
    
  • 换用CSVReaderBuilder手动配置
    部分旧版本OpenCSV的CsvToBeanBuilder.withSeparator可能存在兼容问题,你可以先手动创建CSVReader并指定分隔符,再传给CsvToBeanBuilder:

    CSVReader csvReader = new CSVReaderBuilder(new BufferedReader(new InputStreamReader(content)))
            .withSeparator('|')
            .withIgnoreLeadingWhiteSpace(true)
            .build();
    
    List<CsvProductDto> products = new CsvToBeanBuilder<CsvProductDto>(csvReader)
            .withType(CsvProductDto.class)
            .build()
            .parse();
    
  • 验证CSV文件格式
    确认你的目标CSV文件确实是用|作为字段分隔符,而不是逗号。有时候问题出在文件本身,而非代码配置。

内容的提问来源于stack exchange,提问作者razzledazzle88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:48:46