通过opencsv在文件末尾写入

时间:2010-09-18 11:43:59

标签: java csv opencsv

我正在使用opencsv并希望通过多个会话写入.csv文件。 但是,每次我开始新的CSVWriter时,旧文件都会被删除。 我可以更改CSVWriter在文件末尾写入的行为而不是替换文件吗?

4 个答案:

答案 0 :(得分:30)

FileWriter中有一个选项,而不是CSVWriter附加在文件末尾的选项。

此代码使其有效:

mFileWriter = new FileWriter(file_path, true);
mCsvWriter = new CSVWriter(mFileWriter);

答案 1 :(得分:1)

似乎无法附加到opencsv中的文件(从最初看起来看起来相当简单),但如果您不限于opencsv,则可以尝试JExcel。要附加到JExcel中的文件,您基本上需要创建一个副本然后解决该问题,并覆盖原始文件。这在OpenCSV中可能类似。

编辑:看起来你唯一真正的选择是试用JExcel或将整个文件读入一个列表,附加到它上面然后写出来。如果内存太重,请保持流打开,读取块,写出块,然后写出附加的块。

答案 2 :(得分:1)

OpenCSV可以做到这一点,请看以下示例,将结果集附加到现有的csv文件中。

CSVWriter writer = new CSVWriter(new FileWriter(fileName.concat(".csv"), true), ',');

writer.writeAll(resultSet,true);

FileWriter构造函数的第二个参数是布尔值,用于以附加模式打开文件。

FileWriter(String fileName, boolean append) 

答案 3 :(得分:0)

应该可以:

FileWriter w = new FileWriter("yourfile.csv")
CSVWriter writer = new CSVWriter(w, '\t');
...
writer.flush();
CSVWriter writer2 = new CSVWriter(w, '\t');
...
writer2.flush();
w.close();

CSV tool from the H2 database(免责声明:我写过它)也支持这一点。