Fork me on GitHub

CSV アクセスクラスの主な種類と用途について

※記載順が上の物程ローレベルアクセス向けとなります。

種類 主な使い方・用途
Reader 行レベルの入力
Writer 行レベルの出力
CsvHandler Csv ユーティリティを使用した一括入出力
CsvManager POJO なリストでの一括入出力

CSV アクセス方式選定表

迷ったらまずは CsvEntityManager から使い始めてみて下さい。

データを行単位に処理したい データを一括して処理したい
POJO アクセス POJO アクセス可能な Reader / Writer CsvManager
非 POJO アクセス (e.g. Map, String) POJO アクセスではない Reader / Writer Csv + CsvHandler

データ型別の CSV アクセスクラス マトリックス表

※記載順が上の物程ローレベルアクセス向けとなります。
※「Advanced column mapping」とは配列型へのマッピングや、日付項目および時刻項目とフィールドとのマッピングなど、項目とフィールドの関係が、1:N となるようなマッピングのことを指します。

Basic type Reader Writer CsvHandler CsvManager Column mapping Column selection Advanced column mapping
List<String> CsvReader CsvWriter StringArrayListHandler x 項目の並び順 x x
ResultSet ResultSetHandler x 項目の並び順と項目名 x x
Map<Integer, String> CsvColumnPositionMapReader CsvColumnPositionMapWriter ColumnPositionMapListHandler x 項目の並び順 x x
Map<String, String> CsvColumnNameMapReader CsvColumnNameMapWriter ColumnNameMapListHandler x 項目名 x x
POJO CsvBeanReader CsvBeanWriter BeanListHandler CsvBeanManager フィールド名 CsvBeanTemplate.includes 
CsvBeanTemplate.excludes
x
POJO CsvColumnPositionMappingBeanReader CsvColumnPositionMappingBeanWriter ColumnPositionMappingBeanListHandler CsvColumnPositionMappingBeanManager 項目位置とフィールド名 CsvColumnPositionMappingBeanTemplate.column x
POJO CsvColumnNameMappingBeanReader CsvColumnNameMappingBeanWriter ColumnNameMappingBeanListHandler CsvColumnNameMappingBeanManager 項目名とフィールド名 CsvColumnNameMappingBeanTemplate.columnMapping x
Annotated POJO CsvEntityReader CsvEntityWriter CsvEntityListHandler CsvEntityManager Annotation @CsvColumn @CsvColumns

Reader

Class Type Filter Offset Limit Sort
CsvReader List<String> x x x x
CsvColumnPositionMapReader Map<Integer, String> CsvValueFilter x x x
CsvColumnNameMapReader Map<String, String> CsvNamedValueFilter x x x
CsvBeanReader POJO CsvNamedValueFilter x x x
CsvColumnPositionMappingBeanReader POJO CsvValueFilter x x x
CsvColumnNameMappingBeanReader POJO CsvNamedValueFilter x x x
CsvEntityReader Annotated POJO CsvNamedValueFilter x x x

Writer

Class Type Filter Offset Limit Sort
CsvWriter List<String> x x x x
CsvColumnPositionMapWriter Map<Integer, String> CsvValueFilter x x x
CsvColumnNameMapWriter Map<String, String> CsvNamedValueFilter x x x
CsvBeanWriter POJO CsvNamedValueFilter x x x
CsvColumnPositionMappingBeanWriter POJO CsvValueFilter x x x
CsvColumnNameMappingBeanWriter POJO CsvNamedValueFilter x x x
CsvEntityWriter Annotated POJO CsvNamedValueFilter x x x

CsvHandler

Class Type Filter Offset Limit Sort
StringArrayListHandler List<String[]> CsvValueFilter o o x
ResultSetHandler ResultSet x x x x
ColumnPositionMapListHandler List<Map<Integer, String>> CsvValueFilter o o x
ColumnNameMapListHandler List<Map<String, String>> CsvNamedValueFilter o o x
BeanListHandler List<POJO> CsvNamedValueFilter, BeanFilter o o o
ColumnPositionMappingBeanListHandler List<POJO> CsvValueFilter, BeanFilter o o o
ColumnNameMappingBeanListHandler List<POJO> CsvNamedValueFilter, BeanFilter o o o
CsvEntityListHandler List<Annotated POJO> CsvNamedValueFilter, BeanFilter o o o

CsvConfig

Parameters Read Write Default
separator o o ,
quote o o "
escape o o \
quoteDisabled o o true
escapeDisabled o o true
breakString o null
nullString o o null
ignoreCaseNullString o false
ignoreLeadingWhitespaces o false
ignoreTrailingWhitespaces o false
ignoreEmptyLines o o false
ignoreLinePatterns o null
skipLines o 0
quotePolicy o o QuotePolicy.ALL
utf8bomPolicy o o false
variableColumns o o true
lineSeparator o o System.getProperty("line.separator")