Запись в конец файла через opencsv - PullRequest
10 голосов
/ 18 сентября 2010

Я использую opencsv и хочу записать в файл .csv через несколько сеансов. Однако каждый раз, когда я запускаю новый CSVWriter , старый файл стирается. Могу ли я изменить поведение CSVWriter для записи в конец файла вместо замены файла?

Ответы [ 3 ]

30 голосов
/ 18 сентября 2010

В FileWriter вместо CSVWriter есть возможность добавить в конец файла.

Этот код заставляет его работать:

mFileWriter = new FileWriter(file_path, true);
mCsvWriter = new CSVWriter(mFileWriter);
1 голос
/ 18 сентября 2010

Кажется невозможным добавить файл в opencsv (на первый взгляд это выглядит довольно просто), но если вы не ограничены opencsv, вы можете попробовать JExcel .Чтобы добавить файл в JExcel , вам необходимо создать копию, затем обработать ее и перезаписать оригинал.Это может быть похоже на OpenCSV.

Редактировать: кажется, что ваш единственный реальный вариант - попробовать JExcel или прочитать весь файл в список, добавить к нему и записать это.Если это слишком много для памяти, держите поток открытым, читайте чанки, записывайте чанки, затем записывайте свой добавленный чанк.

0 голосов
/ 18 сентября 2010

Это должно быть возможно:

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 из базы данных H2 (заявление об отказе: я написал) также поддерживает это.

...