HOWTO · Java

Analizza CSV in Java

Introduce diversi metodi per analizzare un file CSV in Java

Toccheremo l’argomento dell’analisi di un CSV in Java. Esamineremo i vari metodi per eseguire l’analisi CSV Java del CSV di esempio di seguito in Java.

Esempio di CSV Java

Analizza CSV utilizzando Scanner in Java

Il primo e più classico modo per analizzare un file CSV è utilizzare la classe Scanner di Java. Nell’esempio, otteniamo il file usando File e poi lo leggiamo con Scanner.

La cosa più importante da notare in questo esempio è che dobbiamo conoscere il separatore utilizzato in CSV. Usiamo la virgola nel CSV originale come separatore; ecco perché possiamo specificare , come delimitatore nel codice.

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();
  }
}

Produzione:

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 | 

Analizza CSV utilizzando String.split() in Java

Nel prossimo esempio, usiamo un metodo split() che funziona con la classe String. Possiamo usare BufferedReader per leggere il file CSV e scorrere in loop leggendo ogni riga finché non raggiunge 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();
    }
  }
}

Produzione:

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

Analizza CSV utilizzando OpenCSV in Java

Diverse librerie possono aiutarci ad analizzare il CSV in Java. Uno di questi è OpenCSV. Nell’esempio seguente, CSVReader() accetta un fileReader con il file CSV e quindi restituisce un array di stringhe.

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();
    }
  }
}

Produzione:

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