Wie man CSV in Java parst

Rupam Yadav 12 Oktober 2023
  1. Parsen von CSV mit Scanner in Java
  2. Parsen von CSV mit String.split() in Java
  3. Parsen von CSV mit OpenCSV in Java
Wie man CSV in Java parst

Wir werden das Thema des Parsens eines CSVs in Java behandeln. Wir werden uns die verschiedenen Methoden zum Parsen eines CSV in Java anhand des unten stehenden Beispiels CSV in Java ansehen.

Java-CSV-Beispiel

Parsen von CSV mit Scanner in Java

Der erste und klassischste Weg, eine CSV-Datei zu parsen, ist die Verwendung der Scanner-Klasse von Java. Im Beispiel erhalten wir die Datei mit File und lesen sie dann mit Scanner.

Das Wichtigste, was in diesem Beispiel zu beachten ist, ist, dass wir das in CSV verwendete Trennzeichen kennen müssen. Wir verwenden das Komma im ursprünglichen CSV als Trennzeichen; deshalb können wir , als Trennzeichen im Code angeben.

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

Ausgabe:

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 | 

Parsen von CSV mit String.split() in Java

Im nächsten Beispiel verwenden wir eine split() Methode, die mit der Klasse String arbeitet. Wir können BufferedReader verwenden, um die CSV-Datei zu lesen und in einer Schleife durch sie hindurch jede Zeile zu lesen, bis sie null erreicht.

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

Ausgabe:

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

Parsen von CSV mit OpenCSV in Java

Mehrere Bibliotheken können uns beim Parsen des CSV in Java helfen. Eine von ihnen ist OpenCSV. Im folgenden Beispiel nimmt CSVReader() einen FileReader mit der CSV-Datei und gibt dann ein Array mit Zeichenketten zurück.

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

Ausgabe:

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

Verwandter Artikel - Java CSV