gpt4 book ai didi

java - 打开 csv 追加一行而不重新添加标题

转载 作者:行者123 更新时间:2023-12-02 10:05:49 27 4
gpt4 key购买 nike

编辑:我尝试重写建议的方法,但它添加了一条白线

我正在使用 OpenCSV 从 CSV 文件读取/写入,当用户添加另一个对象时,我需要附加对象“犯罪”的新行一个。
到目前为止,我只在所有教程中找到了这种写法:

 Writer writer  = new FileWriter(path.toString());

StatefulBeanToCsv sbc = new StatefulBeanToCsvBuilder(writer)
.withSeparator(CSVWriter.DEFAULT_SEPARATOR)
.build();

List<CsvBean> list = new ArrayList<>();
list.add(new WriteExampleBean("Test1", "sfdsf", "fdfd"));
list.add(new WriteExampleBean("Test2", "ipso", "facto"));

sbc.write(list);
writer.close();

问题是在添加新行之前,它还添加了标题,所以我的文件变成:

zipCode,totPopulation,medianAge,totMales,totFemales,totHouseholds,avgHouseholdSize,
91371,1,73.5,0,1,1,1,
90001,57110,26.6,28468,28642,12971,4.4,
90002,51223,25.5,24876,26347,11731,4.36,
90003,66266,26.3,32631,33635,15642,4.22,
zipCode,totPopulation,medianAge,totMales,totFemales,totHouseholds,avgHouseholdSize,
100,100,100,100,100,100,100

其中包含所有“100”值的行是我添加的行。如何防止每次添加一行或多行时都在行前添加标题?

最佳答案

尝试扩展 HeaderColumnNameMappingStrategy 并重写方法 generateHeader返回一个空数组。

然后通过 withMappingStrategy() 将新类的实例传递给 StatefulBeanToCsvBuilder

根据MappingStrategy的Javadoc:

If no header can or should be generated, an array of zero length must be returned, and not null.

如果您想在第一行中包含 header ,请确保仅在文件不是新文件时才执行此操作。

关于java - 打开 csv 追加一行而不重新添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55339619/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com