15

opencsvを使用していて、.csv複数のセッションを介してファイルに書き込みたい。ただし、新しいCSVWriterを起動するたびに、古いファイルが消去されます。CSVWriterの動作を変更して、ファイルを置き換える代わりにファイルの最後に書き込むことはできますか?

4

4 に答える 4

40

CSVWriterの代わりにFileWriterに、ファイルの最後に追加するオプションがあります。

このコードはそれを機能させます:

mFileWriter = new FileWriter(file_path, true);
mCsvWriter = new CSVWriter(mFileWriter);
于 2010-09-18T13:06:02.583 に答える
2

これはOpenCSVで可能です。以下の例を見て、既存のcsvファイルに結果セットを追加してください。

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

writer.writeAll(resultSet、true);

FileWriterコンストラクターの2番目のパラメーターは、ファイルを追加モードで開くためのブール値です。

FileWriter(String fileName, boolean append) 
于 2020-05-28T05:55:50.170 に答える
1

opencsvのファイルに追加することはできないようです(最初の外観からはかなり単純に見えます)が、opencsvに制限されていない場合は、JExcelを試すことができますJExcelでファイルに追加するには、基本的にコピーを作成してからそれを処理し、元のファイルを上書きする必要があります。これはOpenCSVでも同様である可能性があります。

編集:あなたの唯一の本当の選択肢は、JExcelを試すか、ファイル全体をリストに読み込んで追加し、それを書き出すことだと思われます。これがメモリに負担がかかりすぎる場合は、ストリームを開いたままにして、チャンクを読み込み、チャンクを書き出してから、追加されたチャンクを書き出します。

于 2010-09-18T11:48:11.280 に答える
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();

H2データベースのCSVツール(免責事項:私が作成しました)もこれをサポートしています。

于 2010-09-18T12:54:02.677 に答える