gpt4 book ai didi

java - 附加到没有标题的 CSV 文件

转载 作者:行者123 更新时间:2023-12-01 14:21:28 26 4
gpt4 key购买 nike

我正在使用 opencsv将 Java bean 写入带有标题的 CSV 文件。文件名包含当前日期。如果用户在同一天第二次运行它,它会附加到文件中,但会添加另一个标题行。

如何附加到文件但没有列标题。

    public class CSVExport {

final File USERHOME = new File(System.getProperty("user.home"));
final List<saleExport> listSaleExport = new ArrayList<>();
final ObjectMapper mapper = new ObjectMapper();

public void createCsvFile(String Region, Map<String, String> currentSale) throws IOException {

mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
// use column position mapping strategy for no headers?
LocalDate today = LocalDate.now();

final SaleExport saleExport = mapper.convertValue(currentSale, SaleExport.class);
listSaleExport.add(saleExport);
writeToFile(today +" LA.csv", listSaleExport);
}

public void writeToFile(String filename, List<listSaleExport> listSaleExport) throws IOException {

File file = new File(PROCESSED_DIR +"\\", "filename");

if (!file.exists()) {
try {
Writer writer = new FileWriter(PROCESSED_DIR +"\\" +filename, true);
StatefulBeanToCsvBuilder<listSaleExport> beanToCsv = new StatefulBeanToCsvBuilder<>(writer);
StatefulBeanToCsv<listSaleExport> beanWriter = beanToCsv.build();
beanWriter.write(listSaleExport);
writer.close();
} catch (Exception ex) {
System.out.println("Error : " + ex.getMessage());
}
} else {
try {
Writer writer = new FileWriter(PROCESSED_DIR +"\\" +"filename");
StatefulBeanToCsvBuilder<listSaleExport> beanToCsv = new StatefulBeanToCsvBuilder<>(writer);
StatefulBeanToCsv<listSaleExport> beanWriter = beanToCsv.build();
beanWriter.write(listSaleExport);
writer.close();
} catch (Exception ex) {
System.out.println("Error : " + ex.getMessage());
}
}
}
}

最佳答案

不错的。追加是我们在 opencsv 中编写时没有考虑太多的事情,因为它具有潜在风险(出现问题可能会损坏一个好的文件),因此更喜欢写入。

也就是说,在 sourceforge 中打开一个 bug 或功能请求,如果有足够的兴趣,我们将尝试在 4.3 版本中获取它(4.2 已预订稳定)。

也就是说,如果您想解决这个问题,请创建您自己的 MappingStrategy扩展 HeaderColumnNameMappingStrategy 的类您只需要覆盖 generateHeader 方法即可返回空字符串数组。可以查看ColumnPositionMappingStrategy中的代码看看我在说什么。这将防止写入 header 。在这种情况下,您只需要在 else 部分使用它。

希望有帮助。

:)

关于java - 附加到没有标题的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48922642/

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