好吧,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”
答案 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());
}
}