La lettura di record da un file CSV in java è un’operazione abbastanza semplice e con apache commons-csv diventa ancora più facile e automatico.
Per prima cosa dobbiamo aggiungere la necessaria dipendenza nel nostro progetto, scaricando la libreria o includendo la relativa dipendenza maven nel pom.xml del nostro progetto.
Potete trovare la pagina ufficiale del progetto commons-csv cliccando questo link.
Al momento la dipendenza da inserire nel nostro pom.xml è questa:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.6</version>
</dependency>
Una volta inserita questa dipendenza leggere il file sarà semplice, dovremo creare un Reader e poi passarlo al CSV parser per ottenere un Iterable con il quale potremo accedere ai dati attraverso un semplice ciclo for, qui sotto un esempio del codice finale:
Reader in = new FileReader("/tmp/Punteggi.csv");
Iterable<CSVRecord> records = CSVFormat.EXCEL.withFirstRecordAsHeader().parse(in);
List<Risultato> risultati = Lists.newArrayList();
for (CSVRecord record : records) {
Risultato risultato = new Risultato();
risultato.matricola = Long.valueOf(record.get("Matr."));
risultato.arciere = record.get("Arciere");
risultato.classe = record.get("Cl.");
risultato.societa = Integer.parseInt(record.get("Società"));
risultato.divisione = record.get("Divisione");
risultato.punti = Integer.parseInt(record.get("Punti"));
risultato.gara = record.get("Gara");
risultati.add(risultato);
}