Maison >Java >javaDidacticiel >Mappage de beans Java sur des fichiers CSV à l'aide d'OpenCSV

Mappage de beans Java sur des fichiers CSV à l'aide d'OpenCSV

WBOY
WBOYavant
2023-08-21 08:33:201186parcourir

使用OpenCSV将Java Beans映射到CSV文件

À 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.

OpenCSV是什么?

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.

Mappage de beans Java vers CSV à l'aide d'OpenCSV

OpenCSV et Java Beans Il s'agit d'une application OpenCSV et Java Beans basée sur CSV. Il s'agit d'un Java Bean, d'un CSVWriter et d'un Java Bean CSV.数据的写入。接下来是将您的Java Bean映射到CSV文件,提供写入器所需的信息。最后,使用CSVWriter写入记录,从而确保您的数据以您希望的方式表达Il s'agit d'un fichier OpenCSV et Java Beans CSV.的艺术方面迈出坚实的一步。

将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.

Mappage des beans Java vers CSV

  • 第一步 - 创建一个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 −

  • 使用StatefulBeanToCSVBuilder对象的withMappingStrategy函数, et ColumnPositionMappingStrategy应用于。

  • Séparateur du fichier CSV généré à l'aide de la fonction withSeparator de l'objet StatefulBeanToCSVBuilder.

  • 通过StatefulBeanToCSVBuilderavecQuotechar函数,生成的csv文件的withQuotechar。

  • StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer)
    .withMappingStrategy(mappingStrategy)
    . withSeparator('#')
    .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
    . build ();
    
  • 第5步 - 在创建后,可以通过使用StatefulBeanToCsv对象中的write方法,将对象列表或单个对象添加到csv文件中。

  • beanToCsv.write(Employeelist);
    
Exemple

我们的目标是创建一个包含重要属性(如姓名、年龄、公司和薪水)的员工对象的综合列表。然后,我们将生成一个名为Employees.csv的CSV文件,其中包含员工对象。

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"

结论

Open CSV de Java est un outil puissant qui simplifie la lecture et l'écriture de fichiers CSV. Si vous avez besoin d'un moyen plus simple de gérer les structures de données complexes dans vos fichiers CSV, ne cherchez pas plus loin que Open CSV - l'outil qui mappe les beans Java au format . Une simple définition du Java Bean associée à son mappage sur CSV suffit pour produire un enregistrement CSV bien écrit à travers ces quelques lignes de code, et la flexibilité et la fiabilité d'Open CSV en font un composant essentiel pour gérer efficacement les fichiers CSV dans les données. applications pilotées.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer