Skip to content

Comparison of Java CSV libraries

Charlie Hayes edited this page Jul 29, 2019 · 11 revisions
  Commons CSV Flatpack JavaCSV opencsv Super CSV jcsv CSVeed
Repository              
- Maven Central entry yes yes yes yes yes yes yes
- Source in Maven yes no no yes yes yes yes
- Dependencies none JDOM, JExcelapi none none none none Spring, SLF4J
- Logging support no no no no no no SLF4J
- Version 1.6 4.0.1 2.0.0 4.3.2 2.0.1 2.4.0 0.2.2
- Last Release 22-Sept-2018 30-Jul-2015 20-Feb-2008 14-Oct-2018 8-Dec-2012 29-Oct-2015 2-Mar-2013
               
Tokenizer              
- custom separator yes yes yes yes yes yes yes
- custom quote yes yes no yes yes yes yes
- custom escape yes no yes, cryptic yes no, same as quote no yes
- custom EOL yes no yes yes no no yes
- \n in delimited field yes yes yes yes yes yes yes
- escaped quote in quoted field yes yes yes yes yes yes yes
- different escape / quote yes yes N/A yes N/A N/A yes
- deal with leading/trailing whitespace yes no yes no no no yes
               
Line reading              
- get by column index yes no yes yes yes yes yes
- get by column name yes yes yes no no no yes
- read single line (streaming) no no yes yes yes yes yes
- read all lines yes yes, DataSet no yes no yes yes
- skip comment lines yes no yes no no yes yes
- ignore empty lines config yes config no yes, auto yes, auto yes
               
Bean mapping N/A N/A N/A        
- column index-based mapping " " " yes no yes yes
- column name-based mapping " " " theoretically yes no yes
- supports annotations " " " no no limited yes
- converts to primitives " " " yes set manually yes yes
- converts to basic Objects " " " no set manually yes yes
- PropertyEditor support " " " yes, overwrite no no yes
- Date support " " " no yes very limited yes
- Returns typed Bean " " " no yes yes yes
- Deep conversion " " " no yes, untried no no
               
Writing CSV              
- write to Writer yes yes yes yes yes yes no
               
Documentation              
- RFC 4180 Format Enum not mentioned not mentioned RFC4180Parser yes yes no
- Manual no yes no no yes yes no
- Examples no yes yes yes yes yes no
- Ideas behind library no yes no no yes no no
- JavaDoc yes yes no yes yes yes no
- JavaDoc package description no partially no yes yes yes yes
- Roadmap no no no no yes no no
               
Quality of error feedback              
- syntax error line line, obscure eats a lot no line line nr no exact
- illegal number of columns no line, obscure no no check exact no exact
- illegal column index mapping N/A N/A N/A no N/A no line
- illegal column name mapping N/A N/A N/A untried line, obscure N/A exact
- cell to property error N/A N/A N/A no line, only value line only value exact
- bean in original context N/A N/A N/A no no no no
               
Convenience              
- dry run ? yes ? ? ? ? no
- single facade no no yes no no no yes
               
               
Open Source Community              
- active & large community yes no no yes yes no no
- issue management yes no no yes yes no yes

Clone this wiki locally