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(); }