Exporter des données dans un fichier CSV en Java
Dans ce tutoriel nous allons découvrir comment écrire ou exporter des données dans un fichier CSV en Java.
Un fichier CSV (Comma-Separated Values) n’est qu’un fichier texte normal, qui stocke les données colonne par colonne et divise-le par des séparateurs (virgules).
Exemple: La classe Book
La classe Book contient les détails des livres tels que le titre, l’auteur, l’année de publication.
class Book { public String title; public String author; public int year; public Book(String title,String author,int year) { this.title=title; this.author=author; this.year=year; } public String getTitle() { return title; } public String getAuthor() { return author; } public int getYear() { return year; } public void setTitle(String title) { this.title=title; } public void setAuthor(String author) { this.author=author; } public void setYear(int year) { this.year=year; } @Override public String toString() { return "Book [title="+title+", author="+author+", year="+year+"]"; } }
Écrire dans le fichier CSV
Nous allons utiliser la classe FileWriter pour exporter notre objet Book vers « Book.csv ».
import java.io.*; import java.util.*; public class Main { //Délimiteurs qui doivent être dans le fichier CSV private static final String DELIMITER = ","; private static final String SEPARATOR = "\n"; //En-tête de fichier private static final String HEADER = "Title,Author,Year"; public static void main(String args[]) { //Création des objets Book book1 = new Book("Darkness to Light", "Lamar Odam", 1992); Book book2 = new Book("We Are Displaced", "Malala Yousafzai", 1981); Book book3 = new Book("I Am Malala", "Christina Lamb", 1978); Book book4 = new Book("Girl Women", "Satyarth Nayak", 1966); Book book5 = new Book("Forgotten Past", "Peter Baker", 1971); //Ajouter les objets à la liste List bookList = new ArrayList(); bookList.add(book1); bookList.add(book2); bookList.add(book3); bookList.add(book4); bookList.add(book5); FileWriter file = null; try { file = new FileWriter("Book.csv"); //Ajouter l'en-tête file.append(HEADER); //Ajouter une nouvelle ligne après l'en-tête file.append(SEPARATOR); //Itérer bookList Iterator it = bookList.iterator(); while(it.hasNext()) { Book b = (Book)it.next(); file.append(b.getTitle()); file.append(DELIMITER); file.append(b.getAuthor()); file.append(DELIMITER); file.append(String.valueOf(b.getYear())); file.append(SEPARATOR); } file.close(); } catch(Exception e) { e.printStackTrace(); } } }
Sortie dans le fichier « Book.csv »:
Title,Author,Year Darkness to Light,Lamar Odam,1992 We Are Displaced,Malala Yousafzai,1981 I Am Malala,Christina Lamb,1978 Girl Women,Satyarth Nayak,1966 Forgotten Past,Peter Baker,1971