CsvWriter
CSVはちゃんとした規格がないので、セル内改行をどうするとか、エンコーディングはなんだとか、行末文字はこうとか決めておく必要があります。にここで扱うCSVの書式は、WindowsのExcelが出力するCSVの書式に準じたものにします。
- ファイルのエンコーディングはプラットフォームのもので、テキストファイル。
- 行の終端文字は連続するCR LF。CRは行末以外では出現してはならない。
- 各セルはコンマ1文字で分けられる。
- セル内にコンマまたはLFがある場合は、セル全体をダブルクォートで囲む。
- セル内にダブルクォートがある場合は、セル全体をダブルクォートで囲み、セル内のダブルクォートは連続する2つのダブルクォートに置き換える。
だいたい、このような感じです。
コンストラクタでWriterをラップしてしまいますが、Writerはextendsしていません。このあたりは意見が分かれる処でしょうけど。詳細はソースを読んでみてください。
CsvWriter.java