Creare file CSV in Java
Il formato CSV è ancora molto usato, e quindi può essere importante prenderlo in considerazione.
Per creare e leggere file CSV in Java possiamo usare la libreria Apache Commons CSV!
Come vedremo è molto facile da usare.
Oggi vediamo la parte di creazione, prendendo i dati da una List.
Se usate Maven:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
Questo la classe POJO con cui riempiamo la lista:
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 un esempio di codice per la creazione del CSV:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.io.FilenameUtils;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class CsvDb {
public void create(String inputFile, String[] header, List<Nota> list)
throws IOException {
try (BufferedWriter bw = Files.newBufferedWriter(Paths.get(inputFile))) {
try (CSVPrinter csvPrinter = new CSVPrinter(bw,
CSVFormat.DEFAULT.withHeader(header))) {
for (Nota n : list) {
csvPrinter.printRecord(
n.getTitolo(), n.getGruppo(), n.getTesto(),
n.getAggiunta(), n.getModifica());
}
csvPrinter.flush();
}
}
}
}
Come vedete passiamo tre parametri:
- il path di salvataggio del file
- un array con cui riempiamo l'header del CSV
- la lista
L'header non è obbligatorio, dipende da voi se usarlo o meno; provate senza per capire le differenze.
Non ho messo codice relativo al riempimento della lista, ma confido che sappiate come fare!!
Enjoy!
java csv apache commons
Commentami!