Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java API to make an object from a CSV file [closed]

Tags:

java

csv

I'm looking for a library that allows me to map a .csv contents to an object.

Something like:

public class Person {      private String name;     private int age;      @CsvField("name")     public String getName() {         return this.name;     }      @CsvField("age")     public int getAge() {         return this.age;     } } 

and then say something like:

final Person filledWithDataFromCsv = csvApi.load(csvFilepath, Person.class); 

from the given CSV:

#name, age tom, 11 jim, 32 

Does anyone know of such an API, or one that does something similar. I don't want it to use annotations as a must, I just want to be able to load the file with one line of code and a predefined class.

like image 340
Simeon Avatar asked Jun 20 '11 12:06

Simeon


People also ask

How do I write an object to a CSV file?

Steps for writing a CSV file First, open the CSV file for writing ( w mode) by using the open() function. Second, create a CSV writer object by calling the writer() function of the csv module. Third, write data to CSV file by calling the writerow() or writerows() method of the CSV writer object.


1 Answers

JSefa allow you to annotate Java classes that can be used in a serialization and de-serialization process. The tutorial demonstrates how this works with the CsvIOFactory class.

(From the tutorial) Annotating a bean is as simple as specifying the locations of the items in the list of values, and if necessary, you'll need to specify the conversion format:

@CsvDataType() public class Person {     @CsvField(pos = 1)     String name;      @CsvField(pos = 2, format = "dd.MM.yyyy")     Date   birthDate; } 
like image 177
Vineet Reynolds Avatar answered Oct 14 '22 03:10

Vineet Reynolds