If you'd prefer to use your own quote characters, you may use the three arg version of the constructor, which takes a quote character (or feel free to pass in CSVWriter.NO_QUOTE_CHARACTER).

You can also customise the line terminators used in the generated file (which is handy when you're exporting from your Linux web application to Windows clients). There is a constructor argument for this purpose.

Can I dump out SQL tables to CSV?

Yes you can. Sean Sullivan added a neat feature to CSVWriter so you can pass writeAll() a ResultSet.

Is there a way to bind my CSV file to a list of Javabeans?

Yes there is. Kyle Miller added a set of classes to allow you to bind a CSV file to a list of JavaBeans based on column name, column position, or a custom mapping strategy. You can find the new classes in the com.opencsv.bean package. Here's how you can map to a java bean based on the field positions in your CSV file:

For more detailed examples, check out the test cases for each of the available mapping strategies under the /test/java/com/opencsv/bean/.

Other Stuff

Can I use opencsv in my commercial applications?

Yes. opencsv is available under a commercial-friendly Apache 2.0 license. You are free to include it in your commericial applications without any fee or charge, and you are free to modify it to suit your circumstances. To find out more details of the license, read the Apache 2.0 license agreement

Can I get the source? More example code?

You can view the source from the opencsv source section. The source section also gives you the url to the git repository so you can download source code. There is also a sample addressbook csv reader in the /examples directory. And for extra marks, there's a JUnit test suite in the /test directory.

How can I use it in my Maven projects?

Who maintains opencsv?

opencsv was developed in a couple of hours by Glen Smith. You can read his blog for more info and contact details.

Kyle Miller contributed the bean binding work.

Sean Sullivan contributed work and was maintainer for a time.

Scott Conway has done tons of bug fixing including upgrading the source code to Java 5, and is the current (only) maintainer of the project. Scott took a hiatus in 2012-2014 due to work/family demands but came back when Maciek Opala contacted him for fixes for issues the Groovy language was having using opencsv (that's right - you heard it! Groovy uses opencsv!!). But that was when he realized he was the only one still on the project because none of the other admins stepped in to fix issues :(

J.C. Romanda contributed several fixes.

Maciek Opala contributed alot of his time modernizing opencsv. He upgraded the code to Java 7, moved the repository to git and fixed several issues.

Reporting issues

You can report it on the support page at Sourceforge. Please post a sample file that demonstrates your issue. For bonus marks, post a patch too. :-)