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