Leggere file CSV in Java
In questo articolo abbiamo visto come creare un file CSV in Java e Apache Commons CSV.
Oggi agigungiamo il metodo per leggerli!
Partiamo da Maven:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
E dalla nostra classe POJO:
import java.io.Serializable;
public class Nota implements Serializable {
private int id;
private String gruppo;
private String titolo;
private String testo;
private String aggiunta;
private String modifica;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGruppo() {
return gruppo;
}
public void setGruppo(String gruppo) {
this.gruppo = gruppo;
}
public String getTitolo() {
return titolo;
}
public void setTitolo(String titolo) {
this.titolo = titolo;
}
public String getTesto() {
return testo;
}
public void setTesto(String testo) {
this.testo = testo;
}
public String getAggiunta() {
return aggiunta;
}
public void setAggiunta(String aggiunta) {
this.aggiunta = aggiunta;
}
public String getModifica() {
return modifica;
}
public void setModifica(String modifica) {
this.modifica = modifica;
}
}
Questo invece il metodo per leggere il file:
public class CsvDb {
public List<Nota> read(String inputFile) throws IOException {
List<Nota> list = new ArrayList<>();
try (Reader reader = Files.newBufferedReader(Paths.get(inputFile))) {
try (CSVParser csvParser = new CSVParser(reader,
CSVFormat.DEFAULT.
withFirstRecordAsHeader().
withIgnoreHeaderCase().
withTrim())) {
for (CSVRecord csvRecord : csvParser) {
Nota n = new Nota();
n.setTitolo(csvRecord.get("titolo"));
n.setGruppo(csvRecord.get("gruppo"));
n.setTesto(csvRecord.get("testo"));
n.setAggiunta(csvRecord.get("aggiunta"));
n.setModifica(csvRecord.get("modifica"));
list.add(n);
}
}
}
return list;
}
}
Come vedete restituisce una lista della nostra classe.
Noi abbiamo settato il primo record come header; ma avete anche l'opzione manuale, o senza header.
Sotto prendiamo i campi passando il nome; ma potete passare anche l'indice.
A voi un pò di sperimentazione!
Enjoy!
java csv apache commons
2 Commenti
ma forse con canvas intendi javascript, non java?!
23/03/2020Salve la contatto perchè il file è motlo utile.Grazie mille. Vole chiederle un aiuto.Io devo partide da un file csv ed vorei esprimerlo in una tabella per poi con canvas fare un aereogramma e un compito per le mie lezioni.Non so veramente come muovermi. Mi dia una mano se ha tempo perfavore.ùOvviamente non è obbligata ma vedo la sua grossa esperienza.
22/03/2020