orangesignal / orangesignal-csv

CSV (comma-separated values) read and write library for Java.
http://orangesignal.github.io/orangesignal-csv
Apache License 2.0
43 stars 22 forks source link

追記モード再考 (ヘッダー出力抑止オプションの設計) #24

Closed orangesignal closed 10 years ago

orangesignal commented 10 years ago

無理があれば個別に設計する

orangesignal commented 10 years ago

TODO:

matono commented 10 years ago

CsvEntity を使ってCSV に追記したいのですが、 ヘッダ無しで1行のみ出力する方法がわかりません。 @CsvEntity(header = false) なPOJOを使えばできると思いますが、 最初はヘッダ付きのEntity を出力して、 2回めからはヘッダなしの Entity を出力したいのです。

orangesignal commented 10 years ago

ありがとう御座います。さて早速ですが、

@CsvEntity(header = false) なPOJOを使えばできると思いますが、

ご認識の通りです。 いまいまご要望にジャストフィットする機能はないので、CsvEntityWriter と関連クラスにもヘッダ抑止オプションを追加する予定で検討致します。

orangesignal commented 10 years ago

蛇足: CsvConfig.setVariableColumns(false) で追記の場合に、既存の項目数と差異があっても技術的な仕様のため例外にはなりません。

matono commented 10 years ago

早速のご回答ありがとうございます。 取り急ぎ、基本は @CsvEntity(header = false) としておいて、 ファイル作成時のみ以下を実行してヘッダを出力するようにしました。

CsvEntityWriter writer = new CsvEntityWriter(csvWriter, ACsvEntity.class); csvWriter.writeValues(writer.getTemplate().createColumnNames());

orangesignal commented 10 years ago

暫定回避方法の共有ありがとう。了解です。