Super CSV is a fast, programmer-friendly, open-source library for reading and writing CSV files with Java.
It is highly configurable, and supports reading and writing with POJOs, Maps and Lists. It also has support for deep-mapping and index-based mapping with POJOs, using the powerful Dozer extension.
Its flexible 'Cell Processor' API automates data type conversions (parsing and formatting Dates, Integers, Booleans etc) and enforces constraints (mandatory columns, matching against regular expressions etc) - and it's easy to write your own if required.
Super CSV is actively maintained, and the developers are ready and willing to help out if you get stuck :)
Please check out the project website for examples and help getting started.