opencsv只写一行

时间:2015-07-25 19:35:48

标签: csv opencsv

好吧,opencsv有点工作,一次只写一行,删除以前的信息。如果我想要一个像csv:

CAR,YEAR,MODEL

mazda,1996,model a

ferrari,1998,model b

所以我得到的只是最后一行,无论我输入多少信息。 代码就像:

try {
             File traceFile = new File(((Context)this).getExternalFilesDir(null), FILE_NAME);
             CSVWriter writer = new CSVWriter(new FileWriter(traceFile));
              String[] entries = array_body.split("#");
              writer.writeNext(entries);
             writer.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        } 

根据教程和示例,我看到这段代码可以使用,请帮忙吗?

array_body是“part_a#part_b#part_c”

2 个答案:

答案 0 :(得分:1)

我假设这是一个循环?您创建一个新的编写器,然后写一行。所以,是的,它只有一行。将new CSVWriter移到循环外部。如果这不是问题,请显示您的其余代码,因为您描述的问题似乎与您的循环结构有关。

答案 1 :(得分:1)

它对我有用 - 你确定你不会在你的读取循环中意外地拥有新的FileWriter吗?

public void create(int numRecords, FileWriter fos) {
    CSVWriter writer = new CSVWriter(fos);
    writer.writeNext(SmallRecordGenerator.generateHeader());
    for (int i = 1; i <= numRecords; i++) {
        SmallRecord record = SmallRecordGenerator.createRecord(i);
        writer.writeNext(record.convert());
    }
}