Как создать файл csv в java

Аватар пользователя Сергей Якимович
Сергей Якимович
12 февраля 2023

Создать csv файл можно с помощью CsvMapper из библиотеки jackson.

Необходимо подключить библиотеку в файле build.gradle :

dependencies {
    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.13.0'
}

Создадим список объектов и запишем его в csv-файл :

import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.List;

@JsonPropertyOrder({"name", "age"})
class Person {
    public String name;
    public int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

public class App {
    public static void main(String[] args) throws IOException {
        List<Person> people = new ArrayList<>();
        people.add(new Person("Ivan", 20));
        people.add(new Person("Anna", 21));

        CsvMapper mapper = new CsvMapper();
        CsvSchema schema = mapper.schemaFor(Person.class)
                .withColumnSeparator(';')
                .withoutQuoteChar()
                .withHeader();
        ObjectWriter writer = mapper.writer(schema);
        writer.writeValue(new FileWriter("test.csv", StandardCharsets.UTF_8),people);
    }
}

Результат в файле test.csv :

name;age
Ivan;20
Anna;21 
0 0

Похожие вопросы

2
ответа
1
ответ
1
ответ