Arbeiten mit CSV in Java: Vollständige Anleitung zum Lesen und Schreiben

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit CSV in Java: Vollständige Anleitung

CSV (Comma-Separated Values) ist eines der beliebtesten Formate zum Speichern und Austauschen von Tabellendaten. In Java gibt es mehrere Möglichkeiten, mit CSV-Dateien zu arbeiten: vom manuellen Parsen bis zur Verwendung spezialisierter Bibliotheken. In diesem Artikel betrachten wir die grundlegenden Ansätze, einschließlich der Standard-Java-Mittel und beliebter Drittanbieter-Bibliotheken.



1. Standardansatz: CSV manuell lesen

Für einfache Projekte kann man auf Drittanbieter-Bibliotheken verzichten. Wir verwenden BufferedReader und String.split():



import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.List;

public class SimpleCSVReader { public static List<String[]> readCSV(String filePath) { List<String[]> rows = new ArrayList<>(); String line; try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { while ((line = br.readLine()) != null) { String[] values = line.split(","); rows.add(values); } } catch (IOException e) { e.printStackTrace(); } return rows; } public static void main(String[] args) { List<String[]> data = readCSV("data.csv"); for (String[] row : data) { System.out.println(String.join(" | ", row)); } }}


Nachteile: Behandelt keine Anführungszeichen, Maskierung von Kommas innerhalb von Feldern oder Zeilenumbrüche. Für die Produktion ist es besser, Bibliotheken zu verwenden.



2. OpenCSV – leistungsstarke und einfache Bibliothek

OpenCSV ist eine der beliebtesten Bibliotheken für die Arbeit mit CSV in Java. Sie löst alle Parsing-Probleme: Anführungszeichen, Maskierung, verschiedene Trennzeichen.



Installation (Maven):

<dependency>    <groupId>com.opencsv</groupId>    <artifactId>opencsv</artifactId>    <version>5.9</version></dependency>


CSV mit OpenCSV lesen:

import com.opencsv.CSVReader;import com.opencsv.exceptions.CsvValidationException;import java.io.FileReader;import java.io.IOException;

public class OpenCSVReader { public static void main(String[] args) { try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) { String[] nextLine; while ((nextLine = reader.readNext()) != null) { System.out.println(String.join(" | ", nextLine)); } } catch (IOException | CsvValidationException e) { e.printStackTrace(); } }}


CSV mit OpenCSV schreiben:

import com.opencsv.CSVWriter;import java.io.FileWriter;import java.io.IOException;

public class OpenCSVWriter { public static void main(String[] args) { String[] header = {"Name", "Age", "Email"}; String[] row1 = {"Alice", "30", "alice@example.com"}; String[] row2 = {"Bob", "25", "bob@example.com"}; try (CSVWriter writer = new CSVWriter(new FileWriter("output.csv"))) { writer.writeNext(header); writer.writeNext(row1); writer.writeNext(row2); } catch (IOException e) { e.printStackTrace(); } }}


3. Apache Commons CSV – Flexibilität und Leistung

Apache Commons CSV ist eine weitere leistungsstarke Bibliothek mit Unterstützung für verschiedene Formate (CSV, TSV, Excel).



Installation (Maven):

<dependency>    <groupId>org.apache.commons</groupId>    <artifactId>commons-csv</artifactId>    <ver                    

Empfehlungen