Schreiben von Strings in eine CSV-Datei in Java
-
Mit
PrintWriter
eine CSV-Datei in Java lesen und schreiben -
Verwenden der Bibliothek
OpenCSV
zum Lesen und Schreiben in eine CSV-Datei in Java
CSV steht für Comma Separated Values
; Es ist ein häufig verwendetes Format für umfangreiche Datenübertragungen zwischen Systemen. Es gibt auch viele Parser-Bibliotheken, die zusammen mit Java verwendet werden können, um mit diesem Format arbeiten zu können.
Mit PrintWriter
eine CSV-Datei in Java lesen und schreiben
Die Funktion PrinterWriter
in Java ist eine Writer-Klasse, die verwendet wird, um formatierte Darstellungen von Objekten in einen Textausgabestrom zu drucken. Wir erstellen ein writer
-Objekt und übergeben eine neue Datei namens test.csv
als Ziel für den Writer. Dabei hängt das Objekt sb
einen angegebenen String an die Zeichenkette an.
Die Methode write()
der Instanz writer
schreibt den textuellen Inhalt in den Stream. Die Methode flush()
leert den Inhalt in die Datei und die Methode close()
schließt den Stream dauerhaft. Wir können auch den Inhalt der Datei test.csv
lesen.
Die Methode readCSVFile()
wird auf der Klasseninstanz TestCSV
aufgerufen. Hier haben wir eine Instanz der Klasse Scanner
mit Werten aus der angegebenen Datei erstellt. Es zerlegt Daten mithilfe eines Trennzeichenmusters in Token. hasNextLine()
gibt true zurück, wenn der Scanner eine andere Eingabezeile hat. Daher lesen wir jede Zeile von Token-Daten mit der Methode next()
und speichern sie in einem Array, um schließlich die Ausgabe zu drucken.
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TestCSV {
public static void main(String args[]) {
try (PrintWriter writer = new PrintWriter(new File("test.csv"))) {
StringBuilder sb = new StringBuilder();
sb.append("id");
sb.append(',');
sb.append("Name");
sb.append(',');
sb.append("Address");
sb.append('\n');
sb.append("101");
sb.append(',');
sb.append("John Doe");
sb.append(',');
sb.append("Las Vegas");
sb.append('\n');
writer.write(sb.toString());
writer.close();
System.out.println("done!");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
TestCSV testCSV = new TestCSV();
testCSV.readCSVFile();
}
public void readCSVFile() {
List<List<String>> records = new ArrayList<>();
try (Scanner scanner = new Scanner(new File("test.csv"));) {
while (scanner.hasNextLine()) {
records.add(getRecordFromLine(scanner.nextLine()));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println(records.toString());
}
private List<String> getRecordFromLine(String line) {
List<String> values = new ArrayList<String>();
try (Scanner rowScanner = new Scanner(line)) {
rowScanner.useDelimiter(",");
while (rowScanner.hasNext()) {
values.add(rowScanner.next());
}
}
return values;
}
}
Ausgabe
done!
[[id, Name, Address], [101, John Doe, Las Vegas]]
Verwenden der Bibliothek OpenCSV
zum Lesen und Schreiben in eine CSV-Datei in Java
Die Maven-Abhängigkeit für diese Bibliothek ist unten angegeben:
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.4</version>
</dependency>
Die OpenCsv
ist eine einfache Parser-Bibliothek für Java; Es hat eine Reihe von OpenCsv-Klassen, die wir zum Lesen und Schreiben in eine CSV-Datei verwenden. In der Methode main()
rufen wir zunächst die Methode zum Schreiben in eine CSV-Datei mit der Klasse CSVWriter
auf. Diese Klasse wird verwendet, um CSV-Daten in die Writer-Implementierung zu schreiben.
Wir erstellen eine writer
-Instanz von CSVWriter
und rufen die Funktion writeNext()
für dieses Objekt auf, um eine CSV-Datei mit Daten aus einem Array von Strings zu generieren, die durch ein Trennzeichen getrennt sind. Die Methode close()
schließt den Writer-Stream.
Um die Daten aus der von uns erstellten Datei im CSV-Format auszulesen, rufen wir die Methode readCSVFile
auf dem Hauptklassenobjekt auf, wo wir die CSV-Datei parsen. Um alle Datensätze auf einmal in eine Liste einzulesen, verwenden wir die Methode readAll()
. Wir durchlaufen jeden Datensatz und drucken ihn aus.
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import com.opencsv.exceptions.CsvException;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class CSVLibrary {
public static void main(String args[]) {
CSVLibrary csvLibrary = new CSVLibrary();
csvLibrary.writeToCsv();
csvLibrary.readCSVFile();
}
public void writeToCsv() {
String csv = "data.csv";
try {
CSVWriter writer = new CSVWriter(new FileWriter(csv));
String[] record = "2,Virat,Kohli,India,30".split(",");
writer.writeNext(record);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void readCSVFile() {
CSVReader reader = null;
try {
reader = new CSVReader(new FileReader("data.csv"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
List<String[]> allRows = null;
try {
allRows = reader.readAll();
} catch (IOException e) {
e.printStackTrace();
} catch (CsvException e) {
e.printStackTrace();
}
for (String[] row : allRows) {
System.out.println(Arrays.toString(row));
}
}
}
Ausgabe
[2, Virat, Kohli, India, 30]
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInVerwandter Artikel - Java CSV
Verwandter Artikel - Java String
- So führen Sie die Konvertierung von String in String-Array in Java durch
- Wie entferne ich eine Unterzeichenkette aus einer Zeichenkette in Java
- So konvertieren Sie Byte-Array in Hex-String in Java
- Wie man Java-String in Byte konvertiert
- Generieren Sie eine zufällige Zeichenkette in Java
- Die Swap-Methode in Java