Menu

Home

Dmitry Sviridov

Processing CSV files Wiki

<<toc>></toc>

Simple example (for version 0.3.0):

Object to csv file:

create and anotate bean class

@CSV
@CsvAccessorType(CsvAccessType.NONE)
public static class ExampleTestAnnotatedMethod {
    private String val1;
    private String val2;

    @CsvColumn
    public String getFirstName() {
       return val1;
    }

    public void setFirstName(String name) {
        val1 = name;
    }

    public String getLastName() {
        return val2;
    }

    @CsvColumn
    public void setLastName(String name) {
        val2 = name;
    }
}

create objects

ArrayList<ExampleTestAnnotatedMethod> arrayList = new ArrayList<ExampleTestAnnotatedMethod>();
ExampleTestAnnotatedMethod bean1 = new ExampleTestAnnotatedMethod();
bean1.setFirstName("FName1");
bean1.setLastName("LName1");
arrayList.add(bean1);
ExampleTestAnnotatedMethod bean2 = new ExampleTestAnnotatedMethod();
bean2.setFirstName("FName2");
bean2.setLastName("LName2");
arrayList.add(bean2);

and marshal data to CSV file

CsvContext<ExampleTestAnnotatedMethod> context = CsvContext.newInstance(ExampleTestAnnotatedMethod.class);
Marshaller<ExampleTestAnnotatedMethod> marshaller = context.createMarshaller();
FileOutputStream outputStream = new FileOutputStream("example.csv");
marshaller.marshal(arrayList, outputStream); 

Result in file example.csv must like this:

firstName,lastName

FName1,LName1

FName2,LName2

CSV file to Objects

create and anotate bean class

@CSV
@CsvAccessorType(CsvAccessType.NONE)
public static class ExampleTestAnnotatedMethod {
    private String val1;
    private String val2;

    @CsvColumn
    public String getFirstName() {
       return val1;
    }

    public void setFirstName(String name) {
        val1 = name;
    }

    public String getLastName() {
        return val2;
    }

    @CsvColumn
    public void setLastName(String name) {
        val2 = name;
    }
}

Create CSV file example.csv

firstName,lastName

FName1,LName1

FName2,LName2

Parse CSV data

CsvContext<ExampleTestAnnotatedMethod> context = CsvContext.newInstance(ExampleTestAnnotatedMethod.class);
Unmarshaller<ExampleTestAnnotatedMethod> unmarshaller = context.createUnmarshaller();
FileInputStream inputStream = new FileInputStream("example.csv");
Iterable<ExampleTestAnnotatedMethod> iterable = unmarshaller.unmarshal(inputStream);

Context Builder

    public class Bean {
        private final int id;
        private String key;
        public Bean(int id) {
            this.id = id;
        }
        public void setKey(String key) {
            this.key = key;
        }
    }

     CsvContext<TestBeanWithConstructor> context = CsvContext.builder()
                .targetClass(Bean.class)
                .columnNames("ID", "KEY")
                .columnDelimeter("|")
                .columnSetter("KEY", Bean::setKey, String.class)
                .columnField("ID", "id")
                .columnConstructorArgumentId("ID", 0, int.class)
                .build();
        Unmarshaller<Bean> unmarshaller = context.createUnmarshaller();

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.