OpenCSV: trabajando con CSV de forma sencilla con Java

OpenCSV (http://opencsv.sourceforge.net ) es una librería Java que permite trabajar con CSVs de forma muy sencilla, tanto para leer como para escribirlos.

Ofrece estas clases:

· CSVReader: da Operaciones para leer el fichero CSV como una lista de arrays de String.

· CSVWriter: para escribir a un fichero CSV

· CsvToBean: lee el CSV y lo convierte a un Bean conforme a una MappingStrategy.

· MappingStrategy: es un interfaz que define el mapeo entre los datos CSV y la clase Java. Se implementa por HeaderColumnNameMappingStrategy, ColumnPositionMappingStrategy y HeaderColumnNameTranslateMappingStrategy

Para usar OpenCSV simplemente importamos su dependencia Maven:

Veamos algunos ejemplos:

Escribir un fichero CSV:


String csv = "/tmp/employee.csv";

CSVWriter writer = new CSVWriter(new FileWriter(csv));

String[] header= new String[]{"Name","Age","Salary","Address"};

writer.writeNext(header);

List<String[]> allData = new ArrayList<String[]>();

for(int i=0;i<3;i++)

{

String[] data = new String[]{"Blogger"+i,"20"+i,"20.0002",i+" World Wide Web"};

allData.add(data);

}

writer.writeAll(allData);

writer.close();

Leer un fichero CSV:

</pre>
<pre>CSVReader csvReader = new CSVReader(new FileReader("/tmp/employee.csv"));</pre>
<pre> List<String[]> allData = csvReader.readAll();</pre>
<pre> for(String[] data : allData)</pre>
<pre> {</pre>
<pre> for(String s : data)</pre>
<pre> {</pre>
<pre> System.out.print(s+";");</pre>
<pre> }</pre>
<pre> System.out.println();</pre>
<pre> }</pre>
<pre>csvReader.close();</pre>
<pre>

Leer un fichero CSV y mapearlo a un Bean:

</pre>
<pre>Map<String, String> mapping = new HashMap<String, String>();</pre>
<pre>mapping.put("Name", "name");</pre>
<pre>mapping.put("Age", "age");</pre>
<pre>mapping.put("Salary", "salary");</pre>
<pre>mapping.put("address", "Address");</pre>
<pre>HeaderColumnNameTranslateMappingStrategy<Employee> strategy = new HeaderColumnNameTranslateMappingStrategy<Employee>();</pre>
<pre>strategy.setType(Employee.class);</pre>
<pre>strategy.setColumnMapping(mapping);</pre>
<pre>CSVReader csvReader = new CSVReader(new FileReader("/tmp/employee.csv"));</pre>
<pre>CsvToBean<Employee> csvToBean = new CsvToBean<Employee>();</pre>
<pre>List<Employee> list = csvToBean.parse(strategy, csvReader);</pre>
<pre>for(Employee e : list)</pre>
<pre>{</pre>
<pre>System.out.println(e);</pre>
<pre>}</pre>
<pre>

Artículo original: http://kveeresham.blogspot.com.es/2014/09/csv-operations-using-opencsv.html

Deja un comentario