好吧,opencsv有点工作,除了一次只写一行,删除前面的信息。如果我想要一个csv文件,比如:
汽车,年份,型号
1996年马自达,模型一个
法拉利,1998,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 is "part_a#part_b#part_c"
它为我工作-你确定你不会意外地有新的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());
}
}
我假设这是一个循环?您创建一个新的编写器,然后编写一行。是的,它只有一行。将new CSVWriter
移出回路。如果这不是问题,请显示你的代码的其余部分,因为你所描述的问题似乎与你的循环结构有关。