http://opencsv.sourceforge.net/ JavaDoc http://opencsv.sourceforge.net/apidocs/index.html
Grundform
List<SampleBean> list = null;
//Lesen Sie die Datei
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8"))) {
CsvToBeanBuilder<SampleBean> builder = new CsvToBeanBuilder<SampleBean>(reader);
builder.withType(SampleBean.class);
list = builder.build().parse();
}
Beschreibung, die dem Builder hinzugefügt werden soll
builder.withSeparator('\t');
Fügen Sie der Bean-Eigenschaft @ CsvBindByName
hinzu. Bezeichnet durch den Spaltennamen.
Wenn keine Kopfzeile vorhanden ist
public class SampleBean {
@CsvBindByName
private String col1 = null;
@CsvBindByName
private String col2 = null;
@CsvBindByName
private String col3 = null;
@CsvBindByName
private String col4 = null;
@CsvBindByName
private String col5 = null;
//Abkürzung
}
Fügen Sie den Bean-Eigenschaften @ CsvBindByPosition
hinzu. Bezeichnung nach Spaltenposition.
Wenn keine Kopfzeile vorhanden ist
public class SampleBean {
@CsvBindByPosition(position = 0)
private String col1 = null;
@CsvBindByPosition(position = 1)
private String col2 = null;
@CsvBindByPosition(position = 2)
private String col3 = null;
@CsvBindByPosition(position = 3)
private String col4 = null;
@CsvBindByPosition(position = 4)
private String col5 = null;
//Abkürzung
}
Offizielles Site-Beispiel
Writer writer = new FileWriter("yourfile.csv");
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer).build();
beanToCsv.write(beans);
writer.close();
Die offizielle Stichprobenmethode verhält sich wie folgt. -Die Kopfzeile wird eingefügt, aber alle alphabetischen Zeichen werden groß geschrieben. -Die Ausgabereihenfolge der Spalten ist in aufsteigender Reihenfolge der Spaltennamen.
Ich dachte, dass beide mithilfe von Strategie usw. gesteuert werden könnten, aber manchmal musste ich meine eigene Strategieklasse erstellen. Das einfache Schreiben mit "CSVWriter" scheint also schneller zu sein.
Probe mit CSVWriter
CSVWriterBuilder builder = new CSVWriterBuilder(writer);
builder.withSeparator('\t'); //Tabulator begrenzt
builder.withLineEnd("\r\n"); //Zeilenvorschubcode(Standardmäßig\Werden Sie n)
try (ICSVWriter csvWriter = builder.build()) {
//Header
csvWriter.writeNext(new String[] { "column1", "column2" }, false);
//Inhalte schreiben
for (SampleBean output : outputList) {
csvWriter.writeNext(new String[] { output.getColumn1(), output.getColumn2() }, false);
}
}
Recommended Posts