当前位置: 首页 > 知识库问答 >
问题:

Univocity parser-将csv行解析为现有bean实例

彭令秋
2023-03-14

我试图使用univocity解析器将csv文件解析为bean的新实例和现有实例。csv是通过使用univocity BeanWriterProcessor生成的,对于我将称为set a的一组bean。

现在我想读回csv,执行以下操作:

案例1:如果行对应于最初出现在集合a中的一个bean,我不想创建一个新的bean实例,而是将csv读入“现有”实例。(即,“更新”实例)。我通过使用bean的UUID来检查存在性。

案例2:如果行与集合a中最初存在的bean不对应,我想为它创建一个新的bean实例

我想解决的问题是:对于案例1,如何向现有的bean实例写入数据?

在supercsv中,我可以这样做:

beanReader.read(targetExistingBean, header, processors);

在大学里我该怎么做?

共有1个答案

陈和裕
2023-03-14

目前,唯一的方法是重写BeanProcessorBeanListProcessorcreateBean方法(以您使用的为准):

BeanListProcessor<Car> carProcessor = new BeanListProcessor<Car>(Car.class){
    @Override
    public Car createBean(String[] row, Context context) {
        //analyze the row here to determine whether to return an existing instance
        //if you need a new instance, call super.createBean(row, context);
    }
};

希望这有帮助。

 类似资料:
  • 是否可以根据索引范围将一行解析为多个bean 例: 行:“字段1”、“字段2”、“字段3”。。。。,“字段9”

  • 我正在为我的一个项目评估Univocity解析器,固定宽度平面文件格式从三个细节记录(例如,以AA、BB、CC开头)生成一个记录(Bean)——这个文件可以使用Univocity解析吗 我可以使用继续阅读并添加一些自定义转换,但是是否有现成的? 更新: 可以使用:?

  • 我正在尝试从GTFS读取CSV文件。在uniVocity解析器的帮助下压缩,遇到了一个我无法解决的问题。出于某种原因,某些CSV文件的第一列似乎无法正确解析。例如,在“stops.txt”文件中,如下所示: 无法正确解析“stop_id”字段,该字段的值为“null” 这是我用来读取文件的方法: 这就是我的Stop课程的样子: 如果我调用的方法,我得到这个输出是不正确的: 输出: 有人知道为什么会

  • 我读过以下关于csv解析的留档http://gatling.io/docs/2.0.1/session/feeder.html#feeder 我仍然无法捕获以下实现: 如何在Scala中创建变量,代表csv文件中的每一列 如果有两个用户按顺序运行,Gatling如何为这两个用户解析CSV文件?在第一个值被解析后,它会自动查找下一个值吗 我想要达到的目标是: > Gatling读取包含SIM序列号和

  • 我必须解析一个csv文件,并将其内容转储到mysql表中。 第一输出 在第二个输出中,我需要自定义标头水平对齐。例如 对于第二个输出,它可以是我选择的任何一组标题。然后,我可以使用load data infile将这两个输出数据加载到mysql表中。正在寻找awk脚本来实现这一点。如果你还需要什么,请告诉我。德克萨斯州。