Fork me on GitHub

クイック スタート

pom.xml ファイルへ OrangeSignal CSV の依存設定を追加します。

<dependency>
  <groupId>com.orangesignal</groupId>
  <artifactId>orangesignal-csv</artifactId>
  <version>2.2.2-SNAPSHOT</version>
</dependency>

CSV とマッピングしたい POJO クラスへ @CsvEntity アノテーションと @CsvColumn アノテーションを付けます。
@CsvEntity や @CsvColumn などの詳しい説明は、com.orangesignal.csv.annotation パッケージ をご覧ください。

@CsvEntity
public class Customer {

    @CsvColumn(name = "氏名")
    public String name;

    @CsvColumn(name = "年齢")
    public Integer age;

}

もし CSV にヘッダーがない場合は、@CsvEntity でヘッダーを処理しない指定をし、
@CsvColumn で項目名ではなく項目位置でマッピングの指定をします。

@CsvEntity(header = false)
public class Customer {

    @CsvColumn(position = 0)
    public String name;

    @CsvColumn(position = 1)
    public Integer age;

}

CSV を POJO へ変換します。

# 一括で読込む場合 (お勧め)
List<Customer> list =
    new CsvEntityManager()
        .load(Customer.class)
        .from(reader);

# 行毎に読込む場合
CsvEntityReader r = new CsvEntityReader.newInstance(new CsvReader(reader), Customer.class);
try {
    Customer customer = null;
    while ((customer = r.read()) != null) {
        // TODO: ここに処理を記述します。
    }
} finally {
    r.close();
}

非常に簡単に始めることができます。
各機能やオプションの詳細について、ユーザーガイドFAQ などもご覧ください。