【发布时间】:2018-02-22 08:25:14
【问题描述】:
我正在使用 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());
}
}
}
}
【问题讨论】:
-
我有一个类似的问题,等待答案:stackoverflow.com/questions/54975282/…