Rumah > Java > javaTutorial > Memetakan Java Beans ke fail CSV menggunakan OpenCSV

Memetakan Java Beans ke fail CSV menggunakan OpenCSV

WBOY
Lepaskan: 2023-08-21 08:33:20
ke hadapan
1232 orang telah melayarinya

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

Dalam era digital kita di mana sejumlah besar maklumat dihasilkan setiap hari di seluruh dunia; mengurus kaedah penyimpanan maklumat dengan cekap telah menjadi sangat penting kepada banyak domain -termasuk perniagaan- untuk berjaya . Satu alternatif yang telah mendapat populariti besar di kalangan pengguna sejak kebelakangan ini kerana fungsinya yang berkesan bersama dengan aspek kemudahan; sudut pandangan ekonomi boleh dipertimbangkan dengan baik ialah format fail Comma Separated Values ​​(CSV). Ia adalah pilihan berasaskan teks yang boleh membantu dalam menyimpan, memanipulasi dan menghantar data dengan cara yang tidak rumit dan ringan. Namun begitu, memetakan CSV kepada contoh struktur data yang lebih rumit seperti Java Beans mungkin mewakili cabaran yang sukar pada sesetengah keadaan; tetapi dengan OpenCSV adalah mungkin untuk menjadikan segala-galanya lebih mudah difahami dan membolehkan proses pemetaan itu ke dalam format Java Beans.

OpenCSV是什么?

Satu alat penting untuk mengurus fail CSV dalam Java ialah OpenCSV. Pustaka yang dipandang tinggi ini didatangkan secara standard dengan API yang mudah dilayari membolehkan anda membaca/menulis fail yang mengandungi pengepala sambil menggunakan pembatas tersuai serta aksara yang melarikan diri - tanpa mengeluarkan peluh! Satu lagi faedah besar yang ditawarkan oleh OpenCSV melibatkan memudahkan pemetaan ringkas set data berstruktur rumit terus ke kelas Bean yang sepadan. OpenCSV menyediakan pengguna cara yang berkesan untuk mencipta kandungan yang bergaya dan pelbagai - kebingungan dan kekaguman bersatu untuk menghasilkan output yang optimum.

Memetakan Kacang Java ke CSV Menggunakan OpenCSV

使用OpenCSV将Java Beans与CSV文件进行映射需要四个主要步骤 - 定义、创建、映射需要四个主要步骤 - 定义、创建、映尛建、映尛主要步骤个步骤之前,我们先来看看使用OpenCSV将Java Beans映射到CSV的四个步骤:定义Java Bean、创建CSVWriter、将Java Bean映射到CSV以及写入CSV记录。在定义Java Bean之后,之后一之后处理数据的写入。接下来是将您的Java Bean映射到CSV文件,提供写入器所需的信息。最后,使用CSVWriter写入记录,从而确保您的数据保您的数据保您的数据以您的数据以您的数据以您的数据以您的数据以您的。通过这四个步骤,您将在掌握使用OpenCSV将Java Beans映射到CSV的艺术方面迈出坚实的一步。

将OpenCSV库添加到项目中

  • 步骤 1 - 对于 Maven 项目,在 pom.xml 文件中包含 OpenCSV 的 Maven 依赖。

<dependency>
   <groupId>com.opencsv</groupId>
   <artifactId>opencsv</artifactId>
   <version>4.1</version>
</dependency>
Salin selepas log masuk
  • Langkah 2 − Untuk projek Gradle, sertakan kebergantungan OpenCSV

Compile group: "com.opencsv", name: "opencsv", version: "4.1"
Salin selepas log masuk
  • Langkah 3 − Anda juga boleh memuat turun OpenCSV JAR dan memasukkannya ke dalam laluan kelas projek anda.

Memetakan Kacang Jawa ke CSV

  • 第一步 - 创建一个Writer实例,用于将数据写入CSV文件

Writer writer =
Files.newbufferedWriter(Paths.get(file_location));
Salin selepas log masuk
  • Langkah 2 − Buat senarai objek yang perlu ditulis dalam fail CSV

  • Langkah 3 − Menggunakan ColumnPositionMappingStrategy memetakan lajur objek yang dicipta, ke lajur CSV

ColumnPositionMappingStrategy mappingStrategy = new
ColumnPositionMappingStrategy();
mappingStrategy.setType(Employee.class);
//where employee is the object to be mapped with CSV
Salin selepas log masuk
  • Langkah 4 − Cipta objek kelas StatefulBeanToCSV dengan memanggil kaedah binaan kelas StatefulBeanToCSVBuilder dengan objek penulis sebagai parameter. Mengikut keperluan pengguna mungkin juga menyediakan −

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

  • Pemisah fail CSV yang dijana dengan bantuan fungsi withSeparator bagi objek StatefulBeanToCSVBuilder.

  • 通过StatefulBeanToCSVBuilder对象的withQuotechar函数,生成的csv文件的withQuotechar。

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

beanToCsv.write(Employeelist);
Salin selepas log masuk

Contoh

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

Employee.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 + "]";
   }
}
Salin selepas log masuk

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();
      }
   }
}
Salin selepas log masuk

Output

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"
Salin selepas log masuk

结论

CSV Terbuka Java ialah alat berkuasa yang memudahkan pembacaan dan penulisan fail CSV, jadi jika anda memerlukan cara yang lebih mudah untuk menangani struktur data yang kompleks dalam fail CSV anda, tidak perlu mencari lebih jauh daripada Open CSV - alat yang memetakan kacang Java ke dalam format . Takrifan mudah Java Bean ditambah dengan pemetaannya kepada CSV sudah cukup untuk menghasilkan rekod CSV yang ditulis dengan baik melalui beberapa baris kod tersebut, dan fleksibiliti dan kebolehpercayaan Open CSV menjadikannya komponen penting untuk menguruskan fail CSV dalam data dengan berkesan- aplikasi didorong.

Atas ialah kandungan terperinci Memetakan Java Beans ke fail CSV menggunakan OpenCSV. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan