OpenCSV CSVReader CSVWriter Beispiel

OpenCSV: CSVReader und CSVWriter – Ein praktisches Beispiel

Einleitung

OpenCSV ist eine Java-Bibliothek, die das Lesen und Schreiben von CSV-Dateien (Comma-Separated Value) vereinfacht. Sie bietet eine benutzerfreundliche API für den Zugriff auf CSV-Daten, das Parsen von Werten und das Erstellen neuer CSV-Dateien. In diesem Artikel werden wir die Verwendung von OpenCSV anhand eines praktischen Beispiels veranschaulichen. Wir werden zeigen, wie man CSVReader und CSVWriter verwendet, um Daten aus einer CSV-Datei zu lesen und eine neue CSV-Datei zu erstellen.

CSVReader

Datensätze aus einer CSV-Datei lesen

Um Daten aus einer CSV-Datei zu lesen, verwenden wir den CSVReader der OpenCSV-Bibliothek. Der CSVReader benötigt den Pfad zur CSV-Datei als Konstruktorparameter. Hier ist ein Code-Beispiel:

java
import com.opencsv.CSVReader;

public class CSVReaderExample {

public static void main(String[] args) {
try (CSVReader reader = new CSVReader(new FileReader("daten.csv"))) {
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
// Verarbeite die Zeile
for (String value : nextLine) {
System.out.println(value);
}
}
} catch (FileNotFoundException e) {
// Datei nicht gefunden
} catch (IOException e) {
// Fehler beim Lesen der Datei
}
}
}

Der Code öffnet die CSV-Datei daten.csv und liest zeilenweise die Daten aus. Jede Zeile wird in ein Array von Zeichenfolgen nextLine aufgeteilt. Der Code iteriert über das Array und gibt den Wert jeder Spalte aus.

Optionen für CSVReader

* skipLines(int skipLines): Überspringt die angegebene Anzahl von Zeilen am Anfang der Datei.
* readSkipLines(): Liest und verwirft die angegebene Anzahl von Zeilen am Anfang der Datei.
* setSkipEmptyRecords(boolean skipEmptyRecords): Überspringt leere Datensätze (Zeilen mit nur leeren Werten).
* setQuoteChar(char quoteChar): Setzt das Zeichen, das als Anführungszeichen verwendet wird.
* setSeparator(char separator): Setzt das Zeichen, das als Trennzeichen für Felder verwendet wird.

CSVWriter

Daten in eine CSV-Datei schreiben

Um Daten in eine CSV-Datei zu schreiben, verwenden wir den CSVWriter der OpenCSV-Bibliothek. Der CSVWriter benötigt den Pfad zur CSV-Datei als Konstruktorparameter. Hier ist ein Code-Beispiel:

java
import com.opencsv.CSVWriter;

public class CSVWriterExample {

public static void main(String[] args) {
try (CSVWriter writer = new CSVWriter(new FileWriter("ausgabe.csv"))) {
String[] header = {"Name", "Alter", "Stadt"};
writer.writeNext(header);

String[] record1 = {"Max", "30", "Berlin"};
writer.writeNext(record1);

String[] record2 = {"Maria", "25", "Hamburg"};
writer.writeNext(record2);
} catch (IOException e) {
// Fehler beim Schreiben der Datei
}
}
}

Der Code öffnet die CSV-Datei ausgabe.csv und schreibt Daten zeilenweise hinein. Zunächst wird eine Kopfzeile mit den Spaltennamen geschrieben, gefolgt von zwei Datenzeilen.

Optionen für CSVWriter

* writeAll(List records): Schreibt alle übergebenen Zeilen in die CSV-Datei.
* flush(): Spült den Puffer in die CSV-Datei.
* setQuoteChar(char quoteChar): Setzt das Zeichen, das als Anführungszeichen verwendet wird.
* setSeparator(char separator): Setzt das Zeichen, das als Trennzeichen für Felder verwendet wird.
* setEscapeChar(char escapeChar): Setzt das Zeichen, das zum Escapen von Sonderzeichen verwendet wird.

Fazit

OpenCSV ist ein leistungsstarkes Tool, das die Arbeit mit CSV-Dateien in Java vereinfacht. Mit den Klassen CSVReader und CSVWriter können Entwickler Daten aus CSV-Dateien lesen und neue CSV-Dateien erstellen. Die Bibliothek bietet eine Reihe von Optionen, um den Lese- und Schreibvorgang an die spezifischen Anforderungen anzupassen.

Häufig gestellte Fragen

1. Was ist OpenCSV?
OpenCSV ist eine Java-Bibliothek zum Lesen und Schreiben von CSV-Dateien.

2. Wie öffne ich eine CSV-Datei mit OpenCSV?
Verwenden Sie den CSVReader-Konstruktor, indem Sie den Pfad zur CSV-Datei übergeben.

3. Wie schreibe ich Daten in eine CSV-Datei mit OpenCSV?
Verwenden Sie den CSVWriter-Konstruktor, indem Sie den Pfad zur CSV-Datei übergeben.

4. Kann ich leere Zeilen in einer CSV-Datei überspringen?
Ja, verwenden Sie die Methode setSkipEmptyRecords(boolean skipEmptyRecords).

5. Kann ich ein bestimmtes Trennzeichen verwenden?
Ja, verwenden Sie die Methode setSeparator(char separator).

6. Wie kann ich verhindern, dass Sonderzeichen escaped werden?
Verwenden Sie die Methode setEscapeChar(char escapeChar).

7. Was ist der Unterschied zwischen CSVReader und CSVWriter?
CSVReader wird zum Lesen von CSV-Dateien verwendet, während CSVWriter zum Schreiben von CSV-Dateien verwendet wird.

8. Gibt es eine Möglichkeit, alle Daten aus einer CSV-Datei in einer Liste zu lesen?
Ja, verwenden Sie die Methode readAll() des CSVReaders.

9. Gibt es eine Möglichkeit, eine Kopfzeile in eine CSV-Datei zu schreiben?
Ja, verwenden Sie die Methode writeNext() des CSVWriters mit einem Array von Strings für die Kopfzeile.

10. Wie kann ich eine CSV-Datei mit einem anderen Kodierungsschema lesen?
Verwenden Sie den Konstruktor des CSVReaders oder CSVWriters und übergeben Sie ein Charset.

  So ermitteln Sie die Kosten eines Skype-Anrufs