The main motivation for Super Csv is to be the best, fastest and most programmer friendly free CSV package for Java. Super Csv's unique features raises the bar and sets a new standard for CSV packages. Super Csv is designed around solid Object-oriented principles, and thus aims to leverage your Object-oriented code, making it easier to write and maintain.
If you are unsure about what the CSV format is, please read my specification which covers my understanding of the concept: The CSV format specification.
Super Csv offers the following features not found together in other CSV packages
* The ability to read/write POJO beans, Maps and String lists.
* Automatic "CSV encoding" of output on a per need basis. Thus when you write special characters such as , or " Super CSV ensure the content is properly escaped (according to my CSV specification).
* The ability to easily convert input/output to integers, dates, big decimals, trimming strings, etc...
* The ability to easily verify data conforms to some specification, such as number ranges, string sizes, uniqueness and even optional columns.
* The ability to read/write data from anywhere in any encoding. As long as you provide a Reader or a Writer.
* Support for Windows, MAC and Linux line breaks.
* Configurable separation character, space character and end of line character (for writing files to different platforms)
* Operates on streams rather than filenames, enabling you to read/write CSV files e.g. over a network connection.
* Supporting partial reading and writing of objects, maps and arrays with easy setting of default values.
* Supporting on-the-fly generation implementations of bean interfaces when using the BeanReader
When combined, these features enables you to express clear and robust code for handling CSV files.