Cómo analizar CSV en Java

Rupam Yadav 12 octubre 2023
  1. Analizar el CSV usando el Scanner en Java
  2. Analizar CSV usando String.split() en Java
  3. Analizar CSV usando OpenCSV en Java
Cómo analizar CSV en Java

Tocaremos el tema de analizar un CSV en Java. Veremos los diferentes métodos para hacer un análisis CSV en Java de la siguiente muestra de CSV en Java.

Muestra de Java CSV

Analizar el CSV usando el Scanner en Java

La primera y más clásica manera de analizar un archivo CSV es usando la clase Scanner de Java. En el ejemplo, obtenemos el archivo usando File y luego lo leemos con Scanner.

Lo más importante que hay que notar en este ejemplo es que debemos conocer el separador utilizado en CSV. Usamos la coma en el CSV original como separador; por eso podemos especificar , como delimitador en el código.

import java.io.*;
import java.util.Scanner;

public class Main {
  public static void main(String[] args) throws FileNotFoundException {
    File getCSVFiles = new File("/test/example.csv");
    Scanner sc = new Scanner(getCSVFiles);
    sc.useDelimiter(",");
    while (sc.hasNext()) {
      System.out.print(sc.next() + " | ");
    }
    sc.close();
  }
}

Resultado:

Id | UserName | Age | Job
1 | John Doe | 24 | Developer
2 | Alex Johnson | 43 | Project Manager
3 | Mike Stuart | 26 | Designer
4 | Tom Sean | 31 | CEO | 

Analizar CSV usando String.split() en Java

En el siguiente ejemplo, usamos un método split() que funciona con la clase String. Podemos usar BufferedReader para leer el archivo CSV y hacer un bucle a través de él leyendo cada línea hasta que llegue a null.

import java.io.*;
import java.util.Scanner;

public class Main {
  public static void main(String[] args) throws FileNotFoundException {
    String line = "";
    final String delimiter = ",";
    try {
      String filePath = "/test/example.csv";
      FileReader fileReader = new FileReader(filePath);

      BufferedReader reader = new BufferedReader(fileReader);
      while ((line = reader.readLine()) != null) // loops through every line until null found
      {
        String[] token = line.split(delimiter); // separate every token by comma
        System.out.println(token[0] + " | " + token[1] + " | " + token[2] + " | " + token[3]);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Resultado:

Id | UserName | Age | Job
1 | John Doe | 24 | Developer
2 | Alex Johnson | 43 | Project Manager
3 | Mike Stuart | 26 | Designer
4 | Tom Sean | 31 | CEO

Analizar CSV usando OpenCSV en Java

Varias bibliotecas pueden ayudarnos a analizar el CSV en Java. Una de ellas es OpenCSV. En el siguiente ejemplo, CSVReader() toma un FileReader con el archivo CSV y luego devuelve un array de cadenas.

import com.opencsv.CSVReader;
import java.io.*;
import java.util.List;
import java.util.Scanner;
import java.util.Vector;

public class Main {
  public static void main(String[] args) throws Exception {
    try {
      String filePath = "/test/example.csv";
      FileReader fileReader = new FileReader(filePath);

      CSVReader openCSVReader = new CSVReader(fileReader);
      String[] record;

      while ((record = openCSVReader.readNext()) != null) {
        for (String token : record) {
          System.out.print(token + "\t");
        }
        System.out.println();
      }

    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Resultado:

Id	UserName	Age	Job	
1	John Doe	24	Developer	
2	Alex Johnson	43	Project Manager	
3	Mike Stuart	26	Designer	
4	Tom Sean	31	CEO	
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java CSV