Java:
Travailler avec CSV

Comment faire :

Lire un fichier CSV en utilisant la bibliothèque standard de Java

Java ne dispose pas d’un support intégré pour les CSV dans sa bibliothèque standard, mais vous pouvez facilement lire un fichier CSV en utilisant les classes de java.io.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadCSVExample {
    public static void main(String[] args) {
        String line;
        String csvFile = "data.csv"; // Spécifiez le chemin vers le fichier CSV
        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            while ((line = br.readLine()) != null) {
                String[] values = line.split(","); // En supposant qu'une virgule est le délimiteur
                // Traiter les données
                for (String value : values) {
                    System.out.print(value + " ");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Écrire dans un fichier CSV en utilisant la bibliothèque standard de Java

Pour écrire des données dans un fichier CSV, vous pouvez utiliser des classes de java.io telles que FileWriter et BufferedWriter.

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteCSVExample {
    public static void main(String[] args) {
        String[] data = {"John", "Doe", "30", "New York"};
        String csvFile = "output.csv"; // Spécifiez le chemin vers le fichier CSV de sortie

        try (BufferedWriter bw = new BufferedWriter(new FileWriter(csvFile))) {
            StringBuilder sb = new StringBuilder();
            for (String value : data) {
                sb.append(value).append(","); // En supposant qu'une virgule est le délimiteur
            }
            sb.deleteCharAt(sb.length() - 1); // Supprimer la dernière virgule
            bw.write(sb.toString());
            bw.newLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Utiliser une bibliothèque tierce : Apache Commons CSV

Apache Commons CSV est une bibliothèque populaire pour manipuler les fichiers CSV en Java. Elle simplifie de manière significative la lecture et l’écriture des fichiers CSV.

Ajoutez la dépendance à votre projet :

Pour Maven :

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.9.0</version> <!-- Vérifiez la dernière version -->
</dependency>

Lire un fichier CSV :

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

import java.io.Reader;
import java.io.FileReader;
import java.io.IOException;

public class ApacheReadCSVExample {
    public static void main(String[] args) {
        String csvFile = "data.csv";
        try (Reader reader = new FileReader(csvFile);
             CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {
            for (CSVRecord csvRecord : csvParser) {
                // Accéder aux valeurs par les indices de colonnes
                String columnOne = csvRecord.get(0);
                String columnTwo = csvRecord.get(1);
                System.out.println(columnOne + " " + columnTwo);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Écrire dans un fichier CSV :

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class ApacheWriteCSVExample {
    public static void main(String[] args) {
        String[] headers = {"First Name", "Last Name", "Age", "City"};
        String[] data = {"John", "Doe", "30", "New York"};

        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.csv"));
             CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT.withHeader(headers))) {
            csvPrinter.printRecord((Object[]) data); // Le casting en Object[] est nécessaire ici
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Apache Commons CSV gère automatiquement les complexités telles que les guillemets et les virgules dans les champs, ce qui en fait un choix robuste pour la manipulation de CSV en Java.