http://opencsv.sourceforge.net/ JavaDoc http://opencsv.sourceforge.net/apidocs/index.html
Forme basique
List<SampleBean> list = null;
//Lisez le dossier
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();
}
Description à ajouter au constructeur
builder.withSeparator('\t');
Ajoutez @ CsvBindByName
à la propriété du bean. Désigné par le nom de la colonne.
S'il n'y a pas de ligne d'en-tête
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;
//Abréviation
}
Ajoutez @ CsvBindByPosition
aux propriétés du bean. Désignation par position de colonne.
S'il n'y a pas de ligne d'en-tête
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;
//Abréviation
}
Exemple de site officiel
Writer writer = new FileWriter("yourfile.csv");
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer).build();
beanToCsv.write(beans);
writer.close();
La méthode d'échantillonnage officielle se comporte comme suit. -La ligne d'en-tête est insérée, mais tous les caractères alphabétiques sont en majuscules. -L'ordre de sortie des colonnes est dans l'ordre croissant des noms de colonnes.
Je pensais que les deux pouvaient être contrôlés en utilisant la stratégie, etc., mais parfois je devais créer ma propre classe de stratégie. Donc, écrire simplement en utilisant CSVWriter
semble être plus rapide.
Échantillon utilisant CSVWriter
CSVWriterBuilder builder = new CSVWriterBuilder(writer);
builder.withSeparator('\t'); //Onglet délimité
builder.withLineEnd("\r\n"); //Code de saut de ligne(Par défaut\Devenir n)
try (ICSVWriter csvWriter = builder.build()) {
//entête
csvWriter.writeNext(new String[] { "column1", "column2" }, false);
//Rédaction du contenu
for (SampleBean output : outputList) {
csvWriter.writeNext(new String[] { output.getColumn1(), output.getColumn2() }, false);
}
}
Recommended Posts