Lecture d'un fichier CSV dans un tableau

1. Vue d'ensemble

En termes simples, un fichier CSV (valeurs séparées par des virgules) contient des informations organisées séparées par une virgule.

Dans ce didacticiel, nous examinerons différentes manières de lire un fichier CSV dans un tableau.

2. BufferedReader dans java.io

Tout d'abord, nous allons lire les enregistrements ligne par ligne à l'aide de readLine () dans BufferedReader . Ensuite, nous allons diviser la ligne en jetons en fonction du séparateur de virgule.

List
    
      records = new ArrayList(); try (BufferedReader br = new BufferedReader(new FileReader("book.csv"))) { String line; while ((line = br.readLine()) != null) { String[] values = line.split(COMMA_DELIMITER); records.add(Arrays.asList(values)); } }
    

Notez qu'avec cette approche, les CSV plus sophistiqués (par exemple en citant ou en incluant des virgules comme valeurs) ne seront pas analysés comme prévu.

3. Scanner dans java.util

Ensuite, nous allons utiliser un java.util.Scanner pour parcourir le contenu du fichier et récupérer les lignes en série, une par une:

List
    
      records = new ArrayList(); try (Scanner scanner = new Scanner(new File("book.csv"));) { while (scanner.hasNextLine()) { records.add(getRecordFromLine(scanner.nextLine())); } }
    

Ensuite, nous analyserons les lignes et les stockerons dans un tableau:

private List getRecordFromLine(String line) { List values = new ArrayList(); try (Scanner rowScanner = new Scanner(line)) { rowScanner.useDelimiter(COMMA_DELIMITER); while (rowScanner.hasNext()) { values.add(rowScanner.next()); } } return values; }

Comme auparavant, avec cette approche, les CSV plus sophistiqués ne seront pas analysés comme prévu.

4. OpenCSV

Nous pouvons traiter des fichiers CSV plus complexes avec OpenCSV.

OpenCSV est une bibliothèque tierce qui fournit une API pour travailler avec des fichiers CSV. Nous utiliserons la méthode readNext () dans CSVReader pour lire les enregistrements dans le fichier:

List
    
      records = new ArrayList
     
      (); try (CSVReader csvReader = new CSVReader(new FileReader("book.csv"));) { String[] values = null; while ((values = csvReader.readNext()) != null) { records.add(Arrays.asList(values)); } }
     
    

Pour approfondir et en savoir plus sur OpenCSV, nous pouvons consulter notre didacticiel OpenCSV.

5. Conclusion

Dans ce rapide didacticiel, nous avons exploré différentes façons de lire un fichier CSV dans un tableau.

Comme toujours, le code source complet des exemples est disponible à l'adresse over sur GitHub.