Maison >Java >javaDidacticiel >Mappage de beans Java sur des fichiers CSV à l'aide d'OpenCSV
À notre époque numérisée où de grandes quantités d'informations sont produites chaque jour dans le monde entier ; La gestion efficace des méthodes de stockage d'informations est devenue d'une importance cruciale pour de nombreux domaines, y compris les entreprises, afin de réussir. Une alternative qui a récemment gagné une grande popularité parmi les utilisateurs en raison de sa fonctionnalité efficace ainsi que de ses aspects pratiques ; D'un point de vue économique, un format de fichier CSV (Comma Separated Values) pourrait être envisagé. Il s'agit d'une option basée sur du texte qui pourrait aider à stocker, manipuler et transmettre des données de manière simple et légère. Néanmoins, mapper des CSV à des exemples de structures de données plus complexes comme les Java Beans peut représenter un défi de taille dans certains cas ; mais avec OpenCSV, il est possible de tout rendre plus compréhensible et d'activer ce processus de mappage au format Java Beans.
Un outil essentiel pour gérer les fichiers CSV en Java est OpenCSV. Cette bibliothèque très appréciée est livrée en standard avec une API facilement navigable vous permettant de lire/écrire des fichiers contenant des en-têtes tout en utilisant des délimiteurs personnalisés ainsi que des caractères d'échappement - sans transpirer ! Un autre énorme avantage offert par OpenCSV consiste à faciliter le mappage simplifié d'ensembles de données structurés de manière complexe directement sur les classes Bean correspondantes. OpenCSV offre aux utilisateurs un moyen efficace de créer du contenu élégant et varié : la perplexité et la lourdeur s'unissent pour créer un résultat optimal.
将OpenCSV库添加到项目中
步骤 1 - Il s'agit de la version Maven de la version , et de la version pom.xml de OpenCSV et de la version Maven.
<dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>4.1</version> </dependency>
Étape 2 − Pour le projet Gradle, incluez la dépendance OpenCSV
Compile group: "com.opencsv", name: "opencsv", version: "4.1"
Étape 3 - Vous pouvez également télécharger OpenCSV JAR et l'inclure dans le chemin de classe de votre projet.
第一步 - 创建一个Writer实例,用于将数据写入CSV文件
Writer writer = Files.newbufferedWriter(Paths.get(file_location));
Étape 2 − Créez une liste d'objets qui doivent être écrits dans le fichier CSV
Étape 3 - À l'aide de ColumnPositionMappingStrategy, mappez les colonnes des objets créés à la colonne du CSV
ColumnPositionMappingStrategy mappingStrategy = new ColumnPositionMappingStrategy(); mappingStrategy.setType(Employee.class); //where employee is the object to be mapped with CSV
Étape 4 - Créez un objet de la classe StatefulBeanToCSV en appelant la méthode de construction de la classe StatefulBeanToCSVBuilder avec l'objet écrivain comme paramètre. Selon les besoins, l'utilisateur peut également fournir −
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer) .withMappingStrategy(mappingStrategy) . withSeparator('#') .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER) . build ();
第5步 - 在创建后,可以通过使用StatefulBeanToCsv对象中的write方法,将对象列表或单个对象添加到csv文件中。
beanToCsv.write(Employeelist);Exemple
Employé.java
public class Employee { public String Name, Age, Company, Salary; public Employee(String name, String age, String company, String salary) { super(); Name = name; Age = age; Company = company; Salary = salary; } @Override public String toString() { return "Employee [Name=" + Name + ", Age=" + Age + ", Company=" + Company + ", Salary=" + Salary + "]"; } }
BeanToCSV.java
import java.io.FileWriter; import java.io.Writer; import java.nio.*; import java.nio.file.Files; import java.nio.file.Paths; import java.util.*; import com.opencsv.bean.ColumnPositionMappingStrategy; import com.opencsv.bean.StatefulBeanToCsv; import com.opencsv.bean.StatefulBeanToCsvBuilder; public class BeanToCSV { public static void main(String[] args) { // name of generated csv final String CSV_LOCATION = "Employees.csv "; try { // Creating writer class to generate // csv file FileWriter writer = newFileWriter(CSV_LOCATION); // create a list of employees List<Employee> EmployeeList = newArrayList<Employee>(); Employee emp1 = new Employee ("Anurag", "24", "HTc", "75000"); Employee emp2 = new Employee ("Amaan", "24", "Microsoft", "79000"); Employee emp3 = new Employee ("Rashi", "26", "TCS", "39000"); Employee emp4 = new Employee ("Varun", "22", "NgGear", "15000"); Employee emp5 = new Employee ("Pranjal", "29", "Sath", "51000"); EmployeeList.add(emp1); EmployeeList.add(emp2); EmployeeList.add(emp3); EmployeeList.add(emp4); EmployeeList.add(emp5); // Create Mapping Strategy to arrange the // column name in order ColumnPositionMappingStrategy mappingStrategy= new ColumnPositionMappingStrategy(); mappingStrategy.setType(Employee.class); // Arrange column name as provided in below array. String[] columns = new String[] { "Name", "Age", "Company", "Salary" }; mappingStrategy.setColumnMapping(columns); // Creating StatefulBeanToCsv object StatefulBeanToCsvBuilder<Employee> builder= new StatefulBeanToCsvBuilder(writer); StatefulBeanToCsv beanWriter = builder.withMappingStrategy(mappingStrategy).build(); // Write list to StatefulBeanToCsv object beanWriter.write(EmployeeList); // closing the writer object writer.close(); } catch (Exception e) { e.printStackTrace(); } } }Sortie
EmployeeData.csv CSV file contains: ---- "Anurag", "24", "HTc", "75000" "Amaan", "24", "Microsoft", "79000" "Rashi", "26", "TCS", "39000" "Varun", "22", "NgGear", "15000" "Pranjal", "29", "Sath", "51000"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!