通过opencsv在文件末尾写入

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

FileWriter中有一个选项而不是CSVWriter可以附加到文件的末尾。

这段代码使它工作:

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

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

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

它应该是可能的:

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

来自H2数据库的CSV工具 (免责声明:我写过它)也支持这一点。