[Java] Lecture et écriture de fichiers avec OpenCSV

Documentation officielle

http://opencsv.sourceforge.net/ JavaDoc http://opencsv.sourceforge.net/apidocs/index.html

Faire du contenu lu une liste de beans

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();
}

Lire le texte délimité par des tabulations

Description à ajouter au constructeur


builder.withSeparator('\t');

S'il y a une ligne d'en-tête

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

}

S'il n'y a pas de ligne d'en-tête

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

}

Écrire dans un fichier

Écrire à partir d'une liste de haricots

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.

Écrire à l'aide de CSVWriter

É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

[Java] Lecture et écriture de fichiers avec OpenCSV
[Review] Lecture et écriture de fichiers avec java (JDK6)
Lire et écrire des fichiers gzip en Java
[Java] Convertir et importer des valeurs de fichier avec OpenCSV
J'ai essayé de mâcher C # (lire et écrire des fichiers)
[Java] Développement avec plusieurs fichiers en utilisant package et import
Utiliser java avec MSYS et Cygwin
Traçage distribué avec OpenCensus et Java
Installez Java et Tomcat avec Ansible
Utilisez JDBC avec Java et Scala.
Sortie PDF et TIFF avec Java 8
Faites glisser et déposez des fichiers avec JavaFX
Crypter avec Java et décrypter avec C #
Lier le code Java et C ++ avec SWIG
Essayons WebSocket avec Java et javascript!
[Java] Gérer les fichiers Excel avec Apache POI
[Java] Comment sortir et écrire des fichiers!
[Kotlin] Supprimer les fichiers en double [Java]
Notes pour lire et générer des fichiers xlsx à partir de Java à l'aide d'Apache POI
[Java] Que dois-je utiliser pour écrire des fichiers?
Créez et testez des applications Java + Gradle avec Wercker
Essayez d'intégrer Ruby et Java avec Dapr
Différences dans l'écriture des classes Java, C # et Javascript
[Débutant] Téléchargez des images et des fichiers avec Spring [Autosuffisant]
Résumer les différences entre l'écriture C # et Java
Java et JavaScript
XXE et Java
Préparer un environnement de scraping avec Docker et Java
Introduction à Apache Beam (1) ~ Lecture et écriture de texte ~
KMS) Chiffrement d'enveloppe avec décryptage openssl et java
Crypter / décrypter avec AES256 en PHP et Java
[Java] Obtenez des métadonnées à partir de fichiers avec Apathce Tika, et obtenez la largeur et la hauteur des images / vidéos à partir des métadonnées [Kotlin]
[Java] Aligne les caractères même avec des caractères mixtes demi-largeur et pleine largeur
Utilisez Fast Mapping Livery MapStruct avec Lombok et Java 11
Tableau 2D AtCoder ABC129 D résolu en Ruby et Java
Résumé du comportement de ToString avec les annotations Java et Groovy
Exécutez Maven sur Java 8 lors de la compilation sur Java 6 et des tests sur Java 11
Résolution avec Ruby, Perl et Java AtCoder ABC 128 C
[Java] Se référer et définir des variables privées avec réflexion
Connectez le port en avant avec SSH pour envoyer et recevoir des fichiers
Je veux faire des transitions d'écran avec kotlin et java!
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
Application de reconnaissance faciale conçue avec Amazon Rekognition et Java
Java EE sans serveur à partir de Quarkus et Cloud Run
Installez java avec Homebrew
Getter et Setter (Java)
Changer de siège avec Java
[Java] Thread et exécutable
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
Téléchargement confortable avec JAVA
Gérez les fichiers avec NIO.2.
Changer java avec direnv
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
Téléchargement Java avec Ansible
[Java] Une technique pour écrire des constructeurs, des getters et des setters d'un seul coup avec IntelliJ IDEA.