Hinzufügen von Daten zu einer bestehenden CSV-Datei
Nachdem wir eine CSV-Datei erstellt haben, ändern wir nun unser Java-Programm, um zusätzliche Daten an die vorhandene Datei anzuhängen, anstatt sie zu überschreiben.
- Erstellen Sie eine neue Java-Datei mit dem Namen
CSVAppendExample.java:
touch src/main/java/com/example/CSVAppendExample.java
- Öffnen Sie
CSVAppendExample.java im WebIDE-Editor und fügen Sie den folgenden Code hinzu:
package com.example;
import com.opencsv.CSVWriter;
import java.io.FileWriter;
import java.io.IOException;
public class CSVAppendExample {
public static void main(String[] args) {
try {
// Create a CSVWriter in append mode by setting the second parameter of FileWriter to true
CSVWriter writer = new CSVWriter(new FileWriter("students.csv", true));
// Write additional data to the existing file
String[] student3 = {"Robert Johnson", "24", "robert.johnson@example.com"};
writer.writeNext(student3);
String[] student4 = {"Maria Garcia", "23", "maria.garcia@example.com"};
writer.writeNext(student4);
// Close the writer
writer.close();
System.out.println("Data appended to CSV file successfully!");
} catch (IOException e) {
System.out.println("Error appending to CSV file: " + e.getMessage());
e.printStackTrace();
}
}
}
Dieser Code ähnelt unserem vorherigen Beispiel, hat aber zwei wichtige Unterschiede:
- Wir erstellen den
FileWriter mit einem zweiten Parameter, der auf true gesetzt ist, wodurch er im Anhänge-Modus (append mode) arbeitet.
- Wir schreiben keine Kopfzeile, da die Datei bereits eine hat.
- Führen Sie das Programm aus, um Daten an unsere vorhandene CSV-Datei anzuhängen:
cd ~/project/csv-writer
mvn exec:java -Dexec.mainClass="com.example.CSVAppendExample"
- Lassen Sie uns nun den Inhalt unserer CSV-Datei überprüfen:
cat students.csv
Sie sollten die ursprünglichen Daten plus die neu angehängten Datensätze sehen:
"Name","Age","Email"
"John Doe","25","john.doe@example.com"
"Jane Smith","22","jane.smith@example.com"
"Robert Johnson","24","robert.johnson@example.com"
"Maria Garcia","23","maria.garcia@example.com"
Wie Sie sehen können, wurden die neuen Daten am Ende der Datei hinzugefügt, ohne den vorhandenen Inhalt zu stören.
- Lassen Sie uns ein weiteres Beispiel erstellen, das das Schreiben von CSV-Dateien mit benutzerdefinierten Trennzeichen zeigt:
touch src/main/java/com/example/CSVCustomExample.java
- Öffnen Sie
CSVCustomExample.java im WebIDE-Editor und fügen Sie den folgenden Code hinzu:
package com.example;
import com.opencsv.CSVWriter;
import java.io.FileWriter;
import java.io.IOException;
public class CSVCustomExample {
public static void main(String[] args) {
try {
// Create a CSVWriter with semicolon as separator instead of comma
CSVWriter writer = new CSVWriter(new FileWriter("students_semicolon.csv"),
';',
CSVWriter.DEFAULT_QUOTE_CHARACTER,
CSVWriter.DEFAULT_ESCAPE_CHARACTER,
CSVWriter.DEFAULT_LINE_END);
// Write header line
String[] header = {"Name", "Age", "Email"};
writer.writeNext(header);
// Write data lines
String[] student1 = {"John Doe", "25", "john.doe@example.com"};
writer.writeNext(student1);
String[] student2 = {"Jane Smith", "22", "jane.smith@example.com"};
writer.writeNext(student2);
// Close the writer
writer.close();
System.out.println("CSV file with semicolon separator created successfully!");
} catch (IOException e) {
System.out.println("Error writing to CSV file: " + e.getMessage());
e.printStackTrace();
}
}
}
Dieses Beispiel erstellt eine CSV-Datei, die Semikolons als Trennzeichen anstelle von Kommas verwendet. Dies ist in einigen europäischen Ländern üblich, wo Kommas als Dezimaltrennzeichen verwendet werden.
- Führen Sie das Beispiel mit benutzerdefiniertem Trennzeichen aus:
cd ~/project/csv-writer
mvn exec:java -Dexec.mainClass="com.example.CSVCustomExample"
- Überprüfen Sie den Inhalt der neuen CSV-Datei:
cat students_semicolon.csv
Sie sollten die CSV-Datei mit Semikolons als Trennzeichen sehen:
"Name";"Age";"Email"
"John Doe";"25";"john.doe@example.com"
"Jane Smith";"22";"jane.smith@example.com"