【发布时间】:2019-09-25 19:38:06
【问题描述】:
我有这个类包含使用Apache Common CSV library 1.5 生成 CSV 文件的方法
public class CSVGenerator {
private static final String CSV_FILE = "./credentials.csv";
private static CSVPrinter csvPrinter;
public static void generateCSV(String FirstName, String LastName, String DOB) {
try {
BufferedWriter writer = Files.newBufferedWriter(Paths.get(CSV_FILE) );
csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT
.withHeader("FirstName", "LastName", "DOB"));
csvPrinter.printRecord(FirstName, LastName, DOB);
csvPrinter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的主类中有一个方法,这个方法会调用方法generateCSV()几次。
如何编写新行并将其附加到现有的 CSV 文件?使用我当前的实现,它将继续覆盖我的第一行。
更直接的解决方案是在任何 Java 集合(数组或列表)中收集我的所有数据,然后在最后迭代集合并将其一次性写入 CSV。但我不会那样做。我更喜欢将一行写入 CSV ,执行其他操作,然后再次调用该方法以写入新行并将其附加到现有的 CSV 中。
谢谢。
【问题讨论】: