Travailler avec CSV en Java : guide complet de lecture et d'écriture

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec CSV en Java : guide complet

CSV (Comma-Separated Values) est l'un des formats les plus populaires pour stocker et échanger des données tabulaires. En Java, il existe plusieurs façons de travailler avec les fichiers CSV : de l'analyse manuelle à l'utilisation de bibliothèques spécialisées. Dans cet article, nous examinerons les approches principales, y compris les outils Java standard et les bibliothèques tierces populaires.



1. Approche standard : lecture manuelle de CSV

Pour les projets simples, on peut se passer de bibliothèques tierces. Utilisons BufferedReader et String.split() :



import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;

public class SimpleCSVReader { public static List<String[]> readCSV(String filePath) { List<String[]> rows = new ArrayList<>(); String line; try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { while ((line = br.readLine()) != null) { String[] values = line.split(","); rows.add(values); } } catch (IOException e) { e.printStackTrace(); } return rows; } public static void main(String[] args) { List<String[]> data = readCSV("data.csv"); for (String[] row : data) { System.out.println(String.join(" | ", row)); } }}


Inconvénients : ne gère pas les guillemets, l'échappement des virgules dans les champs, les sauts de ligne. Pour la production, il est préférable d'utiliser des bibliothèques.



2. OpenCSV — une bibliothèque puissante et simple

OpenCSV est l'une des bibliothèques les plus populaires pour travailler avec CSV en Java. Elle résout tous les problèmes d'analyse : guillemets, échappement, différents séparateurs.



Installation (Maven) :

<dependency>    <groupId>com.opencsv</groupId>    <artifactId>opencsv</artifactId>    <version>5.9</version></dependency>


Lecture de CSV avec OpenCSV :

import com.opencsv.CSVReader;import com.opencsv.exceptions.CsvValidationException;import java.io.FileReader;import java.io.IOException;

public class OpenCSVReader { public static void main(String[] args) { try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) { String[] nextLine; while ((nextLine = reader.readNext()) != null) { System.out.println(String.join(" | ", nextLine)); } } catch (IOException | CsvValidationException e) { e.printStackTrace(); } }}


Écriture de CSV avec OpenCSV :

import com.opencsv.CSVWriter;import java.io.FileWriter;import java.io.IOException;

public class OpenCSVWriter { public static void main(String[] args) { String[] header = {"Name", "Age", "Email"}; String[] row1 = {"Alice", "30", "alice@example.com"}; String[] row2 = {"Bob", "25", "bob@example.com"}; try (CSVWriter writer = new CSVWriter(new FileWriter("output.csv"))) { writer.writeNext(header); writer.writeNext(row1); writer.writeNext(row2); } catch (IOException e) { e.printStackTrace(); } }}


3. Apache Commons CSV — flexibilité et performance

Apache Commons CSV est une autre bibliothèque puissante prenant en charge différents formats (CSV, TSV, Excel).



Installation (Maven) :

<dependency>    <groupId>org.apache.commons</groupId>    <artifactId>commons-csv</artifactId>    <ver                    

Recommendations